2015-08-30 5 views
5

Im пытается присвоить UICollectionViewFlowLayout к UICollectionView и он работает отлично на физическом устройстве, но имитаторы ломаются, с сигналом:exc_arithmetic ошибки с имитатором только, назначая UICollectionView FlowLayout

EXC_ARITHMETIC (код = EXC_i386_DIV, субкод = 0x0)

Это происходит только на тренажере, это мое понимание того, что это, как правило, деление на 0 ошибок, но я не вижу, как тот возможно моей реализации

Код:

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 

Кроме того, я получаю сигнал на этой линии: self.collectionView!.collectionViewLayout = flowLayout

и видовых границ являются: ШИРИНА: 277,38 ВЫСОТА: 75,0

Любая помощь, или альтернативы будет очень ценим!

+0

Является 'self.view.bounds.width' 0? – jtbandes

+0

@jtbandes не распечатывает размеры дает ШИРИНА: 277.38 ВЫСОТА: 75.0 –

ответ

3

У меня такая же проблема на старый код, над которым я работаю, и кажется, что я вызываю этот код из неправильного метода. Я переместил его в более подходящее место, viewDidLoad или init, и он работает.

+0

Звучит только наполовину решение здесь. Предполагается, что вы сможете изменить коллекциюViewLayout в любое время. –

2

помогли вызвать

reloadData

перед тем

setCollectionViewLayout

+0

Он работает на моем случае. Но почему?????????? –