UITableViewCell
当我失去可见的矩形时,我需要释放一些资源。prepareForReuse
当UITableViewCell
需要重用时发送消息,但我需要另一个......我有UITableViewCell
子类,并且可以覆盖一些消息......
这正是我需要的:tableView:didEndDisplayingCell:forRowAtIndexPath:
但这是 iOS6+ 唯一的解决方案。我需要 iOS4.3+ 解决方案。
UITableViewCell
当我失去可见的矩形时,我需要释放一些资源。prepareForReuse
当UITableViewCell
需要重用时发送消息,但我需要另一个......我有UITableViewCell
子类,并且可以覆盖一些消息......
这正是我需要的:tableView:didEndDisplayingCell:forRowAtIndexPath:
但这是 iOS6+ 唯一的解决方案。我需要 iOS4.3+ 解决方案。
当单元格被隐藏时,它会从UITableView
. 因此,您可以在UITableViewCell
派生类方法中覆盖willMoveToSuperview
:
- (void)willMoveToSuperview:(UIView *)newSuperview
{
[super willMoveToSuperview:newSuperview];
NSLog(@"%p willMoveToSuperview: %p", self, newSuperview);
if(newSuperview == nil) {
// release some resources here
}
}
这正是我需要的:tableView:didEndDisplayingCell:forRowAtIndexPath:
但这是 iOS6+ 唯一的解决方案。我需要 iOS4.3+ 解决方案。
UITableView
继承自UIScrollView
。
因此,一种可能的方法应该是实现该scrollViewDidScroll
方法并检查那里UITableViewCell
是可见的。
这也应该有帮助: 检查 UITableViewCell 是否完全可见的最佳方法
添加一个 else 解决了我的问题。我在哪里重置了对单元格所做的任何更改。
if (! self.cell) {
self.cell = [[LanguageCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellIdentifier];
self.cell.accessoryType = UITableViewCellAccessoryNone;
}
else
{
self.cell.checkImage.image = NO;
}