I am working programmatically (no storyboard) and am having trouble making layout.itemSize dynamic for different screen sizes. I get this error message:
"UICollectionView must be initialised with a non-nil layout parameter"
with the following code in my implementation file:
- (instancetype)init
{
UICollectionViewFlowLayout *layout = [[UICollectionViewFlowLayout alloc] init];
CGSize size = self.collectionView.bounds.size;
layout.itemSize = CGSizeMake(size.width, size.height);
[layout setScrollDirection:UICollectionViewScrollDirectionVertical];
layout.minimumLineSpacing = 100.0;
layout.headerReferenceSize = CGSizeMake(0.0, 50.0);
return (self = [super initWithCollectionViewLayout:layout]);
}
I don't get the error message if I use "100,100" for example for layout.itemSize
. Is there a way to make it dynamic though?
I am new to Objective-C so would appreciate any help on what I am doing incorrectly.
Need to use the flow delegate method:
You specify the width and height float values to whatever you want.
For example, lets say your CollectionView is vertical and you want a short header view, a big middle view and a small footer view, then you could do something like:
add following delegate method to your collection view
here a link which help you enter link description here