Я думаю, что наилучшей практикой для этого будет:
- Переместить
UISwitch
из tableView, просто поместите его над таблицей - Используйте
NSMutableArray
в качестве источника данных
Просто добавьте или удалите два элемента из массива источника данных или из него и после переключения переключателя вызовите [tableView reloadData]
.
Это означает, что вместо простогоtableViewCell невидим, вы скорее удаляете все данные за ним каждый раз, когда хотите скрыть их.Это может быть менее идеальным, поэтому вы также можете выбрать NSArray
для хранения ваших данных.Вместо того, чтобы затем удалять / добавлять данные из / в него, у вас должна быть глобальная переменная BOOL
, чтобы отслеживать, должны ли отображаться 2 ячейки.В ваших UITableViewDataSource
методах оберните содержимое функций в предложение if
.Например, для - (NSInteger)tableView:numberOfRowsInSection:
// assume we have a global BOOL showAllRows which is manipulated with the UISwitch
// assume the data for the UITableView is loaded from an NSArray * data
if (self.showAllRows)
return self.data.count;
else
return self.data.count - 2;
Затем вы должны сделать то же самое в методе - (UITableViewCell*)tableView:cellForRowAtIndexPath:
для настройки ваших ячеек.
Надеюсь, это поможет!