5

Non riesco a ottenere il mio UICollection per impostare correttamente il margine sectionInset.left quando si utilizzano celle con ridimensionamento automatico con estimatedItemSize. Le celle di UICollectionview dovrebbero avere un'altezza della cella un po 'fissa ma una larghezza dinamica in base alla lunghezza del testo.sectionInset non funziona con UICollectionView estimateItemSize in iOS8 utilizzando AutoLayout

Ecco come appare quando l'auto-dimensionamento è abilitata:

enter image description here

E quando l'auto-dimensionamento è disattivata:

enter image description here

Stranamente, sembra che sectionInset.right funziona, ovvero il margine viene aggiunto sul lato destro di UICollectionView.

Ecco il mio UICollectionViewFlowLayout personalizzato, ho attivato la modalità di ridimensionamento automatico utilizzando il commento.

class myFlow: UICollectionViewFlowLayout { 
    required init(coder: NSCoder) { 
    super.init(coder: coder) 

     self.minimumLineSpacing = 1 
//  self.estimatedItemSize = CGSize(width: 100, height: 35) 
     self.sectionInset.left = 20 
    } 

E il mio UICollectionView personalizzato:

class myCV: UICollectionView { 
    required init(coder decoder: NSCoder) { 
     super.init(coder: decoder) 

     self.layer.cornerRadius = 5.0 
     self.layer.borderWidth = 1.0 
     self.layer.borderColor = UIColor.lightGrayColor().CGColor 

    } 
} 

ho steso l'etichetta all'interno della cellula UICollectionView utilizzando layout automatico:

enter image description here

+0

Ho testato di nuovo questo con XCode 7 beta 1 e sta funzionando con quella versione quindi presumo sia un bug nell'attuale implementazione di Apple di auto-dimensionamento celle per UICollectionView. Un altro problema che ho avuto riguardava l'ottenimento di eccezioni al di fuori dei limiti con riferimenti di indice come '9223372036854775806' che ho dovuto risalire a causa di' estimateItemSize'. – petard

+0

Ho appena incontrato un bug molto simile. L'inserto sinistro è stato segnalato nel riquadro destro per una visualizzazione molto simile alla tua (UiCollectionView, modalità orizzontale) quando utilizzo EstimateItemSize. – alaeri

+0

Ho lo stesso problema ma per tutti gli inserti. Il mio problema è un po 'peggiore perché ho bisogno di impostare diverse dimensioni del contenuto in sezioni diverse. In realtà, la vista raccolta non viene visualizzata nemmeno se imposto che il contenuto sia diverso da 0,0,0,0. Anche se 1, 0, 0, 0 ... –

risposta

0

ho trovato un modo per aggirare questo - utilizzare la proprietà contentInset di UIScrollView, ovvero la super classe di UICollectionView. Non sta dicendo rigorosamente la risposta, ma, almeno, una soluzione del problema