Да, программирование на таблицах - это то, на что действительно подходит подход с модельным видом-контроллером. Если вы измените высоту своей ячейки где-то вроде tableView:didDeselectRowAtIndexPath:
, вы можете почувствовать, что она работает, но это не так. Что вы можете сделать в этом методе, это изменить ваши данные и перезагрузить таблицу (или ее часть).
Как уже упоминалось в комментариях выше, вам придется:
Обеспечить правильную высоту для каждой ячейки в
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
Обеспечить правильное представление (клеток) в
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
Whenewer вы хотите чтобы внести некоторые изменения, вы должны изменить свои данные в model
(или соответствующий объект, содержащий ваши данные, связанные с контентом), а затем вызвать один из UITableView's reload
HODS, возможно:
- (void)reloadData
- (void)reloadRowsAtIndexPaths:(NSArray *)indexPaths withRowAnimation:(UITableViewRowAnimation)animation
документация Apple, может быть мало (хотя я думаю, что это вполне профессиональный): Они будут основные ссылки для вас:
UITableView Class Reference
UITableViewDataSource Protocol Reference
UITableViewDelegate Protocol Reference
Table View Programming Guide for iOS
Вы устанавливаете высоту своих ячеек в формате heightForRowAtIndexPath: 'на основе содержимого, которое должно отображаться в ячейке? – jonkroll
@ jonkroll да, я уже это сделал. Им интересно, что высота ячейки Resue является изменчивой? – ericyue
Лунный свет прав. Неважно, что такое высота ячейки повторного использования. Вы хотите использовать метод делегата 'heightForRowAtIndexPath'. Если он не меняет высоту, то вы сделали что-то не так. Поделитесь некоторым кодом, если вам нужны лучшие ответы. – dbrajkovic