大家好,我认为几乎所有从事ios开发的人都可以通过使用以下代码行来解决UITableCell重用的问题。
RZRestaurantListingCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];
我对此进行了大量搜索,但没有得到任何期望的答案,因此在这种情况下请帮助我。
在重用该单元格后,我遇到了与大多数iPhone开发人员相同的问题。
我的单元格内有UIProgressView,有一个按钮可以下载视频,并且在这里显示进度,查看剩余的进度。
所以现在我遇到的问题是,当我有更多数据并且当时不显示在屏幕上时,我按下了UITableviewCell第一行上的下载按钮,然后向下滚动,因此进度也显示在底部随机一个单元格中,因此用户界面在两个单元格中变化,而不是一个。
最佳答案
您需要在自定义单元格类中实现-prepareForReuse方法,并将所有单元格属性设置为默认值。
- (void)prepareForReuse
如果UITableViewCell对象是可重用的-即它具有重用
标识符-此方法在返回对象之前被调用
从UITableView方法dequeueReusableCellWithIdentifier:。对于
出于性能原因,您应该只重置该单元格的属性
与内容无关,例如Alpha,编辑和选择
州。 tableView:cellForRowAtIndexPath中的表视图委托:
重复使用单元格时,应始终重置所有内容。如果细胞
对象没有关联的重用标识符,此方法是
不叫。如果覆盖此方法,则必须确保调用
super class 实现。
在这里参考更多,https://developer.apple.com/library/ios/documentation/UIKit/Reference/UITableViewCell_Class/#//apple_ref/occ/instm/UITableViewCell/prepareForReuse