Как использовать метод prepareForReuse

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

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

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

2 ответа

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?

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

-(void)prepareForReuse{
    [super prepareForReuse];

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

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

Другие вопросы по тегам