2017-02-09 3 views
0

У меня есть два типа UITableViewCell друг на друга. Первый UITableViewCellAccessoryDisclosureIndicator и нижний один UITableViewCellAccessoryNone:Различные настройки UITableViewCell

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

То, что я пытаюсь сделать, это переместить две метки нижней ячейки влево, так правый край обе ячейки выравниваются. Я попытался сделать это, добавив layoutMargins в нижнюю ячейку, но это не сработало. есть идеи как это сделать?

ответ

1

Установить нижнюю ячейку accessoryView на пустой вид с необходимой шириной.

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

Спасибо, это именно то, что я искал. Btw, что используется 'cell.accessoryView = nil;'? – Yar

+1

Ячейки повторно используются. Вы должны всегда устанавливать каждое свойство для каждого условия. – rmaddy

Смежные вопросы