2013-03-09 7 views
11

Sto usando collectionView nella mia applicazione iPad. Ho usato una classe di layout personalizzata che ha ereditato la classe UICollectionViewFlowLayout.UICollectionLa cella scompare

Sto usando la direzione di scorrimento orizzontale. Il problema è che, ogni volta che usiamo scroll per la vista raccolta, alcune volte la cella scompare. Ho eseguito il debug del codice e ho rilevato che nel metodo dell'origine dati dopo aver creato la cella, la sua proprietà nascosta viene automaticamente attivata.

Ho provato usando sotto la linea, ma il relativo funzionamento

cell.hidden = NO 

ho seguito metodo anche per invalidare la layout sul cambiamento legato.

- (BOOL)shouldInvalidateLayoutForBoundsChange:(CGRect)newBounds { 
      return YES; 
     } 

Ma ancora sto affrontando il problema. Qualche soluzione su questo?

Grazie in anticipo.

+0

lo stesso problema sta accadendo anche per me, hai trovato una soluzione? – anoop4real

+0

Sono riuscito a risolvere il mio problema http://stackoverflow.com/questions/38913664/uicollectionviewcell-gets-hidden-randomly/38931405#38931405 – anoop4real

risposta

1

C'è un problema noto che può causare celle a disappear in UICollectionView. Se la loro correzione non funziona, prova PSTCollectionView, che è un sostituto open source per UICollectionView. Se PSTCollectionView funziona, devi presentare un biglietto radar ad Apple.

+0

intendendo dire che si tratta di bug UICollectionView? – Swapnil

+2

Recentemente ho riscontrato alcuni bug con UICollectionView. Sono abbastanza sicuro che UICollectionView non sia privo di errori. Il modo migliore per verificare è utilizzare PSTCollectionView. Poiché è open source, puoi tracciare facilmente il tuo codice. –

+0

Ya. Sento anche che non è privo di bug. Controllerò con PSTCollectionView. Grazie... – Swapnil

0

Nel mio progetto scompare anche UICollectionViewCell, il flowLayout che utilizzo è un layout personalizzato denominato UICollectionViewLeftAlignedLayout. La sua direzione di scorrimento è orizzontale. Eseguo il debug del progetto ancora e ancora, ho provato ogni soluzione che posso trovare attraverso google.com. Tutto ciò non ha funzionato per me.

Alla fine, è possibile eliminare la UICollectionViewLeftAlignedLayout e utilizzare nativo UICollectionViewFlowLayout attraverso:

UICollectionViewFlowLayout *layout = [[UICollectionViewFlowLayout alloc] init]; 
[layout setScrollDirection:UICollectionViewScrollDirectionHorizontal]; 

layout.scrollDirection    = UICollectionViewScrollDirectionHorizontal; 
_collectionView.collectionViewLayout = layout; 
_CollectionView.autoresizingMask  = UIViewAutoresizingFlexibleWidth|UIViewAutoresizingFlexibleHeight; 

E ho impostato la spaziatura cellulare attraverso storyboard (anche si possono impostare tramite propery del layout):

spacing

Quindi eseguo nuovamente il progetto, UICollectionViewCell NON DISPREZZA più. Spero che il mio caso possa aiutarti.