Sto utilizzando UICollectionView a livello di codice.UICollectionView con FlowLAyout che non scorre quando si impostano gli inserti di sezione
ho impostato è telaio come segue:
UICollectionView *collectionView = [[UICollectionView alloc] initWithFrame:CGRectMake(0, 100, self.view.frame.size.width, 3000) collectionViewLayout:flowLayout];
mio UICollectionViewFlowLayout
ha un inserto sezione impostato come:
flowLayout.sectionInset = UIEdgeInsetsMake(20.0, 20.0, 100.0, 20.0);
ho anche solo 1 sezione.
Ho impostato l'altezza su 3000 per vedere se la vista della raccolta si scorre ma non lo fa. Lo sto impostando in quanto la vista dell'insieme non sembra scorrere in alto o in basso quando inserisco nuovi elementi.
UICollectionView
è sottoclasse da UIScrollView
, il che significa che è possibile continuare a reimpostare la dimensione del contenuto della vista di scorrimento. Funzionerebbe correttamente?
L'unico problema è che ciò funzionerebbe se conosco le dimensioni di tutte le voci compreso il numero di elementi presenti su ogni riga.
Se ogni articolo avesse una dimensione diversa, come potrei scoprire la dimensione di ogni riga? Avrei bisogno di aggiungere tutte le dimensioni delle righe e aumentare l'altezza della dimensione del contenuto di self.collectionView
.
EDIT
Anche il mio suggerimento sopra, il ripristino delle dimensioni del contenuto, non funziona correttamente! Ho provato quanto segue quando aggiorno la mia vista collezione:
int numberOfRows = self.dataArray.count/3;
self.collectionView.contentSize = CGSizeMake(self.view.frame.size.width, (numberOfRows * 200) + 300);
Questo è molto brutto però. Questo perché si presuppone che tutte le mie immagini siano di dimensioni 200x200 px, che si adattino a 3 immagini per riga (da qui la divisione per 3).
Inoltre, anche con il +300 che ho, l'ultima riga posso vederne solo 3/4 e non tutto. Devo scorrere di più e potrò vederlo ma tornerà di nuovo su 3/4. È come la pergamena da rinfrescare, in cui la vista si sposta solo se la trascini e quando la lasci torna indietro dove si trovava. Perché sta succedendo? E 'solo che Apple ha progettato UICollectionView
così male? Questo è un po 'ridicolo ... UITableViews regola automaticamente il loro scorrimento in base al loro contenuto.
Questa era la soluzione per me. Stavo usando un layout di flusso personalizzato che rimuoveva gli spazi verticali tra gli elementi in un layout a più colonne. Avevo solo circa la metà degli articoli fino a quando non feci come suggeriva Simon. Sospetto che il motivo per cui ho avuto il problema è che il numero di elementi interrogati è basato su un layout standard. –