我正在做一个像 twitter 客户端 iOS 版本这样的项目。在设计表格 View 时,每个单元格都会更改高度以适应其内容(推文)。
但是我遇到了一个问题:当前屏幕的单元格高度效果很好,但是向下滚动时,新单元格会重复使用旧单元格的高度。
最佳答案
是的,表编程是模型- View - Controller 方法真正有用的地方。如果您将单元格高度更改为 tableView:didDeselectRowAtIndexPath:
之类的地方,您可能会觉得它有效 - 但实际上无效。您可以在此方法中做的是修改您的数据并重新加载表(或其中的一部分)。
如上面的评论所述,您必须:
为每个单元格提供正确的高度
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
在
中提供正确的 View (单元格)- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
每当您想进行一些更改时,您应该修改 model
中的数据(或保存与内容相关的数据的适当对象),然后调用 UITableView 的重新加载
之一方法,可能:
- (void)reloadData
- (void)reloadRowsAtIndexPaths:(NSArray *)indexPaths withRowAnimation:(UITableViewRowAnimation)animation
Apple 的文档可能很少(尽管我认为它非常专业): 这些将是您的基本链接:
UITableViewDataSource Protocol Reference
关于ios - 在类似 twitter 的客户端中重用 UITableViewCell(为每个自定义高度),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9440026/