当单元格重新出现时停止重新加载UITableViewCell!

时间:2010-11-07 19:58:29

标签: iphone objective-c uitableview

在此方法中:

- (UITableViewCell *) tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath

如果我拨打NSLog,则每当UITableViewCell显示在屏幕上时,它会打印出该日志。我只是想知道是否可以加载一次这个单元格而不是每次再次出现时都重新加载它。我知道这不是一个非常有效的设计,但它只是在我需要做的一个单元格上!

由于

1 个答案:

答案 0 :(得分:1)

不确定。您可以创建一次单元格,例如在viewDidLoad:中,并从tableView:cellForRowAtIndexPath:返回它。仍将调用cellForRowAtIndexPath,但您只需创建/初始化一次单元格。如果你愿意,你可以用这种方式创建所有单元格并将它们存储在一个数组中。不要忘记在卸载视图时释放这些单元格。

- (void)viewDidLoad 
{
    [super viewDidLoad];

    _myCachedCell = [[UITableViewCell alloc] initWithStyle: UITableViewStylePlain reuseIdentifier: nil];
    _myCachedCell.textLabel.text = @"some text";
}


- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {

    if ( indexPath.section == 0 && indexPath.row == 0 )
        return _myCachedCell;