13

Im trying to assign a UICollectionViewFlowLayout to a UICollectionView and it runs fine on a physical device but simulators break, with a signal:

EXC_ARITHMETIC(code=EXC_i386_DIV, subcode=0x0)

This only happens on a simulator, it is my understanding that this is usually a division by 0 error, but I dont see how thats possible for my implementation

Code:

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

Furthermore, i get the signal at this line: self.collectionView!.collectionViewLayout = flowLayout

and the view bounds are : WIDTH: 277.38 HEIGHT: 75.0

Any help, or alternatives would be greatly appreciated!

justin shores
  • 687
  • 7
  • 24

2 Answers2

20

Helped to call

reloadData

before

setCollectionViewLayout

Nick Rostov
  • 415
  • 4
  • 6
6

I got the exact same issue on a old code I am working on and it appears that I was calling this code from a wrong method. I moved it in more appropriate place, viewDidLoad or init and it works.

Ganzolo
  • 1,394
  • 12
  • 23