2012-02-25 3 views
4

Я работаю над проектом, таким как версия iOS для клиента Twitter. При проектировании табличного вида каждая ячейка меняет высоту, чтобы разместить ее содержимое (твит).Повторное использование UITableViewCell (настраиваемая высота для каждого) в твиттер-подобном клиенте

Но я столкнулся с проблемой: высота ячейки текущего экрана хорошо работает, но при прокрутке вниз новая ячейка повторно использует высоту старых ячеек.

+1

Вы устанавливаете высоту своих ячеек в формате heightForRowAtIndexPath: 'на основе содержимого, которое должно отображаться в ячейке? – jonkroll

+0

@ jonkroll да, я уже это сделал. Им интересно, что высота ячейки Resue является изменчивой? – ericyue

+2

Лунный свет прав. Неважно, что такое высота ячейки повторного использования. Вы хотите использовать метод делегата 'heightForRowAtIndexPath'. Если он не меняет высоту, то вы сделали что-то не так. Поделитесь некоторым кодом, если вам нужны лучшие ответы. – dbrajkovic

ответ

3

Да, программирование на таблицах - это то, на что действительно подходит подход с модельным видом-контроллером. Если вы измените высоту своей ячейки где-то вроде 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