2015-08-30 9 views
5

Nel tentativo di assegnare un UICollectionViewFlowLayout ad un UICollectionView e funziona bene su un dispositivo fisico, ma simulatori rompere, con un segnale:errore exc_arithmetic con il simulatore solo, assegnando UICollectionView FlowLayout

EXC_ARITHMETIC (codice = EXC_i386_DIV, sottocodice = 0x0)

questo accade solo su un simulatore, è la mia comprensione che questo è di solito una divisione per 0 errori, ma non vedo come questo è possibile per la mia realizzazione

Codice:

let flowLayout: UICollectionViewFlowLayout = UICollectionViewFlowLayout() 

flowLayout.itemSize = CGSizeMake(self.view.bounds.width * 0.67, 
             self.collectionView!.frame.height - 10) 

flowLayout.scrollDirection = UICollectionViewScrollDirection.Horizontal 

self.collectionView!.collectionViewLayout = flowLayout 

Inoltre, ottengo il segnale in questa linea: self.collectionView!.collectionViewLayout = flowLayout

e i limiti vista sono: WIDTH: 277,38 ALTEZZA: 75,0

Qualsiasi aiuto, o alternative sarebbe molto apprezzato!

+0

è 'self.view.bounds.width' 0? – jtbandes

+0

@ jtbandes nessuna stampa delle dimensioni dà WIDTH: 277.38 HEIGHT: 75.0 –

risposta

3

Ho ottenuto lo stesso identico problema su un vecchio codice su cui sto lavorando e sembra che stia chiamando questo codice da un metodo sbagliato. L'ho spostato in un posto più appropriato, viewDidLoad o init e funziona.

+0

Suona come la metà della soluzione qui. Dovresti essere in grado di modificare collectionViewLayout in qualsiasi momento. –

2

contribuito a chiamare

reloadData

prima

setCollectionViewLayout

+0

Funziona sul mio caso. Ma perché?????????? –

Problemi correlati