2014-08-30 3 views
0

Моя пользовательская ячейка содержит много элементов ui. Мне было очень сложно повторно использовать ячейки. Поэтому я установил ячейку, созданную нулью в методе делегирования didEndDisplayingCell таблицы. Есть ли какие-либо проблемы при этом. будет ли это препятствовать производительности. Это мой кодПроблема при повторном использовании ячеек таблицы просмотра

(void)tableView:(UITableView *)tableView didEndDisplayingCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath { 
    if ([tableView.indexPathsForVisibleRows indexOfObject:indexPath] == NSNotFound){ 
     VBMerchantDealCell *cell = (VBMerchantDealCell *)[tableView cellForRowAtIndexPath:indexPath]; 
     cell = nil; 
    } 
} 
+0

Почему вы устанавливаете ячейку на нуль? Почему вы не используете механизм повторного использования? Может быть, если вы объясните, в чем проблема, с которой вы сталкиваетесь, это может помочь вам кто-то. – Abizern

+0

@Abizern Моя пользовательская ячейка содержит значки переключения, которые переключаются каждые 3 секунды. Текст, отображаемый на значке при переключении, отличается и цвет значка, и текст, отображаемый на каждом значке в ячейке, отличается. как я справляюсь с этим. Когда я пытался использовать одну и ту же ячейку с включенным повторным использованием, содержимое и текст внутри ячейки дублируются. –

ответ

0

Да, но не повторное использование ячеек будет очень плохой для работы. Также использование прозрачности в ваших ячейках может повлиять на производительность (т. Е. Прокрутка). Вы можете использовать инструменты или симулятор, чтобы проверить это: «цветные смешанные слои» будут окрашивать все непрозрачные изображения в красный цвет.

0

Использовать метод prepareToReuse в подклассе вашей ячейки. Здесь сбросьте все значения по умолчанию и в соответствующем методе cellForRowAtIndexPath установите соответствующие значения в ячейку.

И ya, но не повторное использование ячейки, является излишним издержками производительности.

+0

@Adhithya Здесь моя пользовательская ячейка содержит значок и метку внутри этого значка (оба в xib). Тогда как я могу повторно использовать ячейку. Если я сделаю cell.imgBadgeImageView.image = nil и cell.lblBadgeLabel.Text = nil, оба из них исчезнут из всех оставшихся ячеек (поскольку мы повторно используем ячейки). Нужно ли это добавлять в виде подкатегории к ячейке из кода. Если я это сделаю, то как я могу получить доступ к представлению изображения значка ячейки и значка значка. Мне нужно получить доступ к этим двум, потому что есть анимация (для изображения) и изменение текста (для метки). Plz ответить ... –

+0

Я уже ответил, что. После того, как вы деактивируете ячейку в cellForRowAtIndexPath, установите правильные значения для изображения изображения и ячейки. – Adithya

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