ios - 在类似 twitter 的客户端中重用 UITableViewCell(为每个自定义高度)

标签 ios objective-c uitableview heightforrowatindexpath

我正在做一个像 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 的文档可能很少(尽管我认为它非常专业): 这些将是您的基本链接:

UITableView Class Reference

UITableViewDataSource Protocol Reference

UITableViewDelegate Protocol Reference

Table View Programming Guide for iOS

关于ios - 在类似 twitter 的客户端中重用 UITableViewCell(为每个自定义高度),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9440026/

相关文章:

ios - 为标签的相同字符设置不同的颜色

iOS UITableView 可重用单元格在显示所有单元格时速度变慢

iphone - 来自 XIB 的新自定义单元导致键的键值编码兼容......?

objective-c - NSFetchRequest 的 NSSortDescriptor 在上下文保存后不起作用

objective-c - 为什么 rand() % 7 总是返回 0?

ios - 如何生成开发 MDM/APNS 证书?

iphone - 为什么我的 CGContext 绘制的圆很糟糕?

ios - UITableView 动画错误 - 动画之前计算的可见区域

ios - 带 block 参数的 NSInvocation

ios - 使用 iOS Swift 进行复杂的 Firebase 查询