代码之家  ›  专栏  ›  技术社区  ›  ingh.am

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

  •  0
  • ingh.am  · 技术社区  · 15 年前

    在这种方法中:

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

    NSLog UITableViewCell 每次都显示在屏幕上。我只是想知道是否可以加载这个单元格一次,而不是每次它再次出现时都重新加载它。我知道这不是一个非常有效的设计,但它只是在一个细胞,我需要做的!

    谢谢

    1 回复  |  直到 15 年前
        1
  •  1
  •   TomSwift    15 年前

    当然。您可以创建一次单元格,例如在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;