我正在开发一个类似 twitter 客户端 iOS 版本的项目。在设计表格视图时,每个单元格都会更改高度以适应其内容(推文)。
但是我遇到了一个问题:当前屏幕的单元格高度效果很好,但是向下滚动时,新单元格会重用旧单元格的高度。
我正在开发一个类似 twitter 客户端 iOS 版本的项目。在设计表格视图时,每个单元格都会更改高度以适应其内容(推文)。
但是我遇到了一个问题:当前屏幕的单元格高度效果很好,但是向下滚动时,新单元格会重用旧单元格的高度。
是的,表编程是模型-视图-控制器方法真正有用的地方。如果你在某个地方改变你的单元格高度,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 的文档可能很少(尽管我认为它非常专业):这些将是您的基本链接: