2010-11-07 96 views
0

在这个方法:当单元格重新出现时停止重新加载UITableViewCell!

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

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

谢谢

+0

你试图解决什么问题,你认为这会对你有好处? – imaginaryboy 2010-11-07 20:19:43

+0

刚刚对下面的答案发表了评论... – 2010-11-07 20:41:18

回答

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; 
+0

谢谢你现在就试试吧! :) – 2010-11-07 20:10:44

+3

不是一个好主意 – 2010-11-07 20:12:14

+1

我不是说它不是一个好主意。这个问题表明他明白这不是最好的设计。但是,如果您拥有固定单元数量有限的TableView,那么这可以快速简单地获得您所需的内容。 – TomSwift 2010-11-07 20:30:47

相关问题