2010-11-07 2 views
0

В рамках этого метода:Остановите перезагрузку UITableViewCell, когда снова появится ячейка!

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

Если я называю NSLog он напечатает, что журнал, когда UITableViewCell показывает на экране каждый раз. Мне просто интересно, можно ли однажды загрузить эту ячейку и не перезагружать ее каждый раз, когда она появляется снова. Я понимаю, что это не очень эффективный дизайн, но это только одна ячейка, в которой я должен это делать!

Thanks

+0

В чем проблема: вы пытаетесь решить, где вы думаете, что это было бы полезно для вас? – imaginaryboy

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

Спасибо, попробуем! :) –

+3

не очень хорошая идея –

+1

Я не утверждаю, что это хорошая идея или нет. Вопрос в том, что он понял, что это не лучший дизайн. Но если у вас есть TableView с ограниченным количеством фиксированных ячеек, это может быть быстрый и простой способ получить то, что вам нужно. – TomSwift

Смежные вопросы