3

Under iOS 5, it seemed that a UITableViewCell subclass's willMoveToSuperview: method was called every time the cell was used or reused, but under iOS 6, it seems that it's only called when the cell is initially created and used, not when a cell gets reused. Can anyone verify this difference? Is this a bug?

What method should I be using to do cell setup inside the UITableViewCell subclass that will get called when the cell is reused in both iOS 5 and iOS 6?

4

2 回答 2

1

我在 UICollectionView 上遇到了同样的问题。看来您必须prepareForReuse在用于显示的视图中实现该方法(例如 UITableViewCell 或 UICollectionViewCell 类型)。但是,如果您在 iOS6中使用dequeueReusableCellWithReuseIdentifier:forIndexPath:带有已注册类的新单元格,即使这是第一次创建单元格(不仅仅是在重用单元格时),它也会被调用。registerClass:forCellWithReuseIdentifier:

参考:UITableViewCell 类 - prepareForReuse

于 2013-04-17T15:44:08.240 回答
0

1.如何知道一个单元格是否从tableview中删除?

使用此方法做一些事情,例如清理、停止计时器或其他事情......

- (void)tableView:(UITableView *)tableView didEndDisplayingCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath

2.如何知道一个单元格是否要显示

  • (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath;

3. 如何知道一个单元格是否要重用

覆盖此方法

UITableViewCell:
 - (void)prepareForReuse();
于 2013-08-15T09:37:32.147 回答