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