Да, при программировании таблиц подход модель-представление-контроллер действительно оказывается полезным.Если вы измените высоту своей ячейки где-то вроде tableView:didDeselectRowAtIndexPath:
, вы можете почувствовать, что это работает, но это не так.В этом методе вы можете изменить данные и перезагрузить таблицу (или ее часть).
Как уже упоминалось в комментариях выше, вам необходимо:
Предоставить правильную высоту для каждогоячейка в
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
Обеспечить правильное представление (ячейка) в
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
Когда вы хотите внести некоторые изменения, вы должны изменить свои данные в model
(или соответствующем объекте, содержащем ваше содержимое).связанных данных), а затем вызовите один из UITableView's reload
методов, возможно:
- (void)reloadData
- (void)reloadRowsAtIndexPaths:(NSArray *)indexPaths withRowAnimation:(UITableViewRowAnimation)animation
Документация Apple может быть недостаточной (хотя я думаю, что она довольно профессиональная): это будут основные ссылки для вас:
Ссылка на класс UITableView
Ссылка на протокол UITableViewDataSource
Ссылка на протокол UITableViewDelegate
Руководство по программированию табличного представления для iOS