Just call the following method after loading the collection and you will get what you need.
- (void)updateContentInset {
NSInteger numRows = [self collectionView:collectionView numberOfItemsInSection:0];
CGSize contentInsetTopSize = collectionView.bounds.size;
CGFloat contentInsetTop = contentInsetTopSize.height;
int i=0;
for (i=0;i<numRows;i++) {
CGFloat height = 70 + [self heightOfTextForString:[arrNotes objectAtIndex:[NSIndexPath indexPathForItem:i inSection:0].row] andFont:[UIFont fontWithName:@"HelveticaNeue-LightItalic" size:13.0] maxSize:CGSizeMake(157, FLT_MAX)];
contentInsetTop = contentInsetTop - height;
if (contentInsetTop <=0) {
contentInsetTop = 0;
break;
}
}
NSLog(@"Height-->%f",contentInsetTop);
collectionView.contentInset = UIEdgeInsetsMake(contentInsetTop,0,0,0);
[NSTimer scheduledTimerWithTimeInterval: 0.01 target: self
selector: @selector(callTheTarget:) userInfo: nil repeats: NO];
}
source
share