Остановите перезагрузку UITableViewCell, когда ячейка появится снова! - PullRequest
0 голосов
/ 07 ноября 2010

В рамках этого метода:

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

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

Спасибо

1 Ответ

1 голос
/ 07 ноября 2010

Конечно.Вы можете создать свои ячейки один раз, скажем, в 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;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...