Ярлык IOS iPhone перемещается при прокрутке экрана

#iphone #ios #uitableview #tableview #cells

#iPhone #iOS #uitableview #просмотр таблицы #ячейки

Вопрос:

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

У меня есть view с UITableView в нем, есть куча ячеек, и в этом конкретном представлении, если я прокручиваю экран вниз, метка, которая находится в последней ячейке, накладывается поверх метки в первой ячейке.

Это происходит только в этом представлении, где первая и последняя ячейки отображаются или не отображаются в UITableView в зависимости от того, находятся ли определенные значения в ленте JSON.

Если обе ячейки находятся в UITableView , то при прокрутке ярлык нижней ячейки отображается поверх верхней. Метка нижней ячейки все еще на месте, как и верхняя — только с нижней поверх нее!

Итак, кто-нибудь видел что-нибудь подобное, и если да, то есть ли очевидная вещь, которую я делаю неправильно, что этот тип возникновения является симптомом?

Комментарии:

1. В вашем cellForRowAtIndexPath будет проблема, вы, вероятно, добавляете ярлык в качестве вложенного представления каждый раз, даже когда ячейка была удалена из очереди. Это ответ на ~ 80% вопросов UITableView по SO.

2. Возможно, вы правы, проверим и увидим. Спасибо.

3. Похоже, что это проблема в порядке, но теперь вопрос в том, как мне проверить, удалена ячейка из очереди или нет.

4. Я уверен, что если вы включите свой метод cellForRowAtIndexPath, вы получите несколько предложений

Ответ №1:

Как найти ячейку, которая была удалена из очереди?

Проверьте [UITableViewCell prepareForReuse] , и именно здесь вы можете удалить ранее вставленные вложенные представления, прежде чем добавлять новые.

Вот документация Apple:

http://developer.apple.com/library/ios/documentation/UIKit/Reference/UITableViewCell_Class/Reference/Reference.html#//apple_ref/occ/instm/UITableViewCell/prepareForReuse