3

UITableViewCell可視範囲外になったら、いくつかのリソースを解放する必要があります。再利用が必要なprepareForReuseときにメッセージが送信されますが、別のメッセージが必要です...サブクラスがあり、いくつかのメッセージをオーバーライドできます...UITableViewCellUITableViewCell

これはまさに私が必要としているものです: tableView:didEndDisplayingCell:forRowAtIndexPath:

ただし、これは iOS6+ のみのソリューションです。iOS4.3+ ソリューションが必要です。

4

4 に答える 4

2

セルが非表示になると、 から削除されUITableViewます。UITableViewCellしたがって、派生クラスのメソッドでオーバーライドできますwillMoveToSuperview

- (void)willMoveToSuperview:(UIView *)newSuperview
{
    [super willMoveToSuperview:newSuperview];
    NSLog(@"%p willMoveToSuperview: %p", self, newSuperview);
    if(newSuperview == nil) {
        // release some resources here
    }
}
于 2012-09-29T14:25:43.440 に答える
1

UITableViewから継承しUIScrollViewます。

したがって、可能な方法の 1 つは、scrollViewDidScrollメソッドを実装し、そこに表示されているものを確認することUITableViewCellです。

これも役立つはずです: UITableViewCell が完全に表示されているかどうかを確認する最良の方法

于 2012-12-01T09:17:42.567 に答える
1

これはまさに私が必要としているものです: tableView:didEndDisplayingCell:forRowAtIndexPath:

ただし、これは iOS6+ のみのソリューションです。iOS4.3+ ソリューションが必要です。

于 2012-09-29T14:51:28.670 に答える