#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: