Как использовать метод prepareForReuse - PullRequest
19 голосов
/ 20 февраля 2012

Я нашел этот метод под названием - (void)prepareForReuse прочитал документ , но я не понимаю, как его использовать.

Когда я прокручиваю свое табличное представление, оно застревает или имеет медленную прокрутку, и я намереваюсь использовать prepareForReuse.Может кто-нибудь указать мне хороший учебник или дать пример кода, чтобы я мог учиться.

Извините, у меня нет кода для демонстрации моей работы.

Ответы [ 2 ]

18 голосов
/ 20 февраля 2012

Метод prepareForReuse вызывается представлением таблицы-владельца в ячейке, которая в данный момент не нужна. Здесь вы должны выполнить небольшую очистку для своей пользовательской ячейки, например сбросить альфа-значения и т. П., Чтобы потом их можно было использовать повторно. Вы не должны называть это сами, кстати.

Вам нужно заботиться только об этом, если вы внедряете настраиваемые ячейки табличного представления: вы перезаписываете его для очистки.

Вы «используете» его, просто используя идентификаторы повторного использования в tableView:cellForIndexPath::

static NSString *CellIdentifier = @"Identifier";

cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
    cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault
                                   reuseIdentifier:CellIdentifier];
    [cell autorelease];
    // Set up your cell
}

Чтобы еще больше повысить производительность представления в виде таблицы, см. Вопрос Рекомендации по повышению производительности прокрутки iPhone UITableView?

14 голосов
/ 17 июня 2014

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

-(void)prepareForReuse{
    [super prepareForReuse];

    // Then Reset here back to default values that you want.
}

В противном случае он может повторно использовать предыдущие значения, которые вы установили, если ваша логика не меняет его.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...