У меня есть UITableView. Я заполняю его из NSDictionary с массивами для каждого набора элементов в таблице: меток, нижних колонтитулов, верхних колонтитулов, UIViews и т. Д.
В разделе 0 я хочу, чтобы строка № 2 появлялась при включении переключателя в строке № 1.
Что я сделал, и это работает, в numberOfRowsInSection я добавил этот код:
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
if (interruptor.isOn==NO && section==0) {
return [[[infoTableContentArray objectAtIndex: section] objectForKey:kLabelKey] count]-1;
}else{
return [[[infoTableContentArray objectAtIndex: section] objectForKey:kLabelKey] count];
}
}
и действие, связанное с коммутатором (прерывателем):
-(IBAction)accioInterruptor:(id)sender{
[infoAndSettingsTable reloadData];
}
поэтому, когда коммутатор переключается, таблица перезагружается, и ячейка появляется или исчезает.
это на самом деле работает, но нет анимации, которая делает это, м-м-м ... ну, вы знаете.
Я попытался реализовать reloadRowsAtIndexPaths: withRowAnimation, добавив его в код, вызываемый переключателем:
-(IBAction)accioInterruptor:(id)sender{
[infoAndSettingsTable beginUpdates];
[infoAndSettingsTable reloadRowsAtIndexPaths:[[infoTableContentArray objectAtIndex: 0] objectForKey:kLabelKey] withRowAnimation:UITableViewRowAnimationBottom];
[infoAndSettingsTable endUpdates];
}
Но это не работает. Сбой на линии [infoAndSettingsTable заканчиваетсяUpdates];
Кстати, во всех случаях следующее:
[[infoTableContentArray objectAtIndex: 0]
- это массив, содержащий метки для этого раздела.
Я все делаю правильно или я полностью проваливаюсь?
Заранее спасибо!