У меня есть UICollectionView с несколькими ячейками в нем.UICollectionView.reloadData или UICollectionView.deleteItemsAtIndexPaths делает ячейку скрытой, но по-прежнему доступной.
Я удалил первую ячейку, нажав на нее кнопку, она работает хорошо, независимо от того, что я выбираю [UICollectionView reloadData] or [UICollectionView deleteItemsAtIndexPaths:]
.
Теперь следующие ячейки будут двигаться вперед, поэтому первая ячейка теперь будет второй до удаления, легко понять, правильно?
Теперь приходит странная часть:
я нажимаю на кнопку первой ячейки удаления, это показывает:
<MyCell: 0x7fc5de566590; baseClass = UICollectionViewCell; frame = (220 20; 80 104); alpha = 0; hidden = YES; layer = <CALayer: 0x7fc5de566740>>
напечатать видимые ячейки:
< __NSArrayM 0x7fc5de655830>( < MyCell: 0x7fc5de55c060; baseClass = UICollectionViewCell; frame = (20 134; 80 104); layer = < CALayer: 0x7fc5de55c210>>, < MyCell: 0x7fc5de635290; baseClass = UICollectionViewCell; frame = (120 134; 80 104); layer = < CALayer: 0x7fc5de635440>> )
смотрите? ячейка, на которую я нажал, на самом деле тот, который был удален, если это НЕ! он имеет flag hidden = YES
, и он также имеет фрейм и супервизор (да, просмотр - это представление коллекции).
Теперь это приносит мне проблему, потому что я хотел удалить этого парня MyCell: 0x7fc5de55c060.
Значит, какой-нибудь ключ к этому? Спасибо!
Вы повторно используете ячейки? – Templar
Эти ячейки предназначались для повторного использования, верно? – george
Их следует использовать повторно, это намного быстрее, а память эффективна. Хотя я точно не понимаю вашу проблему. Вы удаляете ячейку, а следующее удаление не работает? Как добавить кнопку удаления? – Templar