Mam UICollectionView
z niestandardową podklasą komórek UICollectionViewCell
. I w kodzie mam zrobić, co następuje:dequeueReusableCellWithIdentifier nie używając ponownie komórek
[self.collectionView_ registerClass:[AHPinterestCell class]
forCellWithReuseIdentifier:@"AHPinterestCell"];
jest to, co dzieje się w moim cellForItem
AHPinterestCell *cell =
(AHPinterestCell *)[collectionView dequeueReusableCellWithReuseIdentifier:@"AHPinterestCell"
forIndexPath:indexPath];
jednak wydaje się, że nie jest to ponowne komórkę. W widoku mojej kolekcji na ekranie jest wyświetlanych około 9-10 komórek, jednak gdy wykonuję nieskończone przewijanie, a następnie wywołuję insertItemsAtIndexPath
, wywołuje on metodę initWithFrame
w mojej komórce niestandardowej, podczas gdy prawdopodobnie powinien ponownie wykorzystać komórki, które już posiadam. Dlaczego to?
EDIT:
dodaję przykładowy projekt demo, który ilustruje problem, link do projektu Xcode można znaleźć here. Zasadniczo robi nieskończony zwój, gdy dojdziesz do dna, po prostu dołącza do niego więcej rzeczy. Ale kiedy to zrobisz, ponownie wywoła metodę init.
@Rob Wołam registerClass w viewDidLoad – adit
@Sang należy po prostu init, jak 10, a następnie reszta kiedy przewijać powinno nigdy wywołuj init ponownie, ponieważ jest ponowne co mam już – adit
@Sang jak upewnić się, że to uruchomi się, gdy stanie się widoczny? Tak więc w moim przypadku mam UICOllectionView, który ma 100 komórek w nim, ale 10 jest wyświetlany na ekranie na raz. Zakładam więc, że tylko 10 init zostanie wywołanych, a reszta zostanie ponownie użyta. – adit