A layout object that organizes items into a grid with optional header and footer views for each section.
The methods adopted by the object you use to manage user interactions with items in a collection view.
collectionView(_:layout:minimumInteritemSpacingForSectionAt:) Asks the delegate for the spacing between successive items of a single row or column.
Just self.collectionView.delegate = self;
. Note that UICollectionViewDelegateFlowLayout
inherits from UICollectionViewDelegate
.
I admit it caught me off guard at first.
Oh and this will only work if self.collectionView.collectionViewLayout
is actually set to your flow layout. (or set with initWithFrame:collectionViewLayout:
)
According to previous answer just example of use. It really not clear but I can show how it works:
@interface PrettyViewController()<UICollectionViewDelegateFlowLayout, UICollectionViewDataSource>
//some code
@end
@implementation PrettyViewController
- (void)viewDidLoad {
[super viewDidLoad];
self.collectionView.delegate = self;//bingo! right here
}
#pragma mark - UICollectionViewDelegateFlowLayout
- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout referenceSizeForFooterInSection:(NSInteger)section {
return CGSizeMake([[UIScreen mainScreen] bounds].size.width, 20.0);
}
@end
My two cents for macOS Mojave - Swift
(I've fallen here searching for NSCollectionView
... I do know question was about UICollectionView
..)
All said above (specifying delegate implies cell size, too) is correct for macOS, too.
NOTE: If You write:
class MyViewController:
NSCollectionViewDelegate,
NSCollectionViewDataSource,
**NSCollectionViewDelegateFlowLayout**
{
the method:
func collectionView(_ collectionView: NSCollectionView,
layout collectionViewLayout: NSCollectionViewLayout,
sizeForItemAt indexPath: IndexPath) -> NSSize
will be called.
If removed, no delegate method will be called. (as class does not obey to the protocol).
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With