2017-02-09 6 views
0

Ich habe zwei Arten von UITableViewCell übereinander. Die erste ist UITableViewCellAccessoryDisclosureIndicator und der Boden ist UITableViewCellAccessoryNone:Verschiedene UITableViewCell Typen Ausrichtung

if(someCondition) 
{ 
    cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator; 
} 
else 
{    
    cell.accessoryType = UITableViewCellAccessoryNone; 
    // this didn't work 
    // cell.layoutMargins = UIEdgeInsetsMake(0.0, 0, 0.0, 10.0); 
} 

Was ich versuche zu tun, die beiden Etiketten der unteren Zelle nach links zu bewegen, so dass die rechte Kante Beide Zellen werden ausgerichtet. Ich habe versucht, dies zu tun, indem Sie eine layoutMargins in die untere Zelle hinzufügen, aber es hat nicht funktioniert. Irgendeine Idee, wie man das macht?

Antwort

1

Stellen Sie die accessoryView der unteren Zelle auf eine leere Ansicht mit der benötigten Breite ein.

if(someCondition) 
{ 
    cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator; 
    cell.accessoryView = nil; 
} 
else 
{    
    cell.accessoryType = UITableViewCellAccessoryNone; 
    // Adjust the width value as needed 
    cell.accessoryView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 25, 5)]; 
} 
+0

Danke, das ist genau das, was ich gesucht habe. Übrigens, was nützt 'cell.accessoryView = nil;'? – Yar

+1

Zellen werden wiederverwendet. Sie müssen immer jede Eigenschaft für jede Bedingung festlegen. – rmaddy

Verwandte Themen