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;
}