@@ -17,6 +17,12 @@ @implementation SomoDataSourceProvider
17
17
SomoTableViewCellBlock _tableViewCellBlock;
18
18
SomoTableViewCellHeightBlock _heightBlock;
19
19
SomoCollectionViewCellBlock _collectionViewCellBlock;
20
+ SomoCollectionViewLayoutSize _sizeBlock;
21
+ SomoCollectionViewLayoutEdgeInsets _insetsBlock;
22
+ SomoCollectionViewLayoutMinimumLineSpacing _minimumLineSpacingBlock;
23
+ SomoCollectionViewLayoutMinimumInteritemSpacing _minimumInteritemSpacingBlock;
24
+ SomoCollectionViewLayoutReferenceSizeForHeader _referenceSizeForHeaderBlock;
25
+ SomoCollectionViewLayoutReferenceSizeForFooter _referenceSizeForFooterBlock;
20
26
}
21
27
22
28
- (instancetype )initWithCellReuseIdentifier : (NSString *)reuseIdentifier {
@@ -40,10 +46,22 @@ - (instancetype)initWithTableViewCellBlock:(SomoTableViewCellBlock)block heightB
40
46
return self;
41
47
}
42
48
43
- - (instancetype )initWithCollectionViewCellBlock : (SomoCollectionViewCellBlock)block {
49
+ - (instancetype )initWithCollectionViewCellBlock : (SomoCollectionViewCellBlock)block
50
+ size : (SomoCollectionViewLayoutSize)size
51
+ edgeInsets : (SomoCollectionViewLayoutEdgeInsets)edgeInsets
52
+ minimumLineSpacing : (SomoCollectionViewLayoutMinimumLineSpacing)minimumLineSpacing
53
+ minimumInteritemSpacing : (SomoCollectionViewLayoutMinimumInteritemSpacing)minimumInteritemSpacing
54
+ referenceSizeForHeader : (SomoCollectionViewLayoutReferenceSizeForHeader)referenceSizeForHeader
55
+ referenceSizeForFooter : (SomoCollectionViewLayoutReferenceSizeForFooter)referenceSizeForFooter {
44
56
if (self = [super init ]) {
45
57
_collectionViewCellBlock = block;
46
58
_numberOfRowsInSection = 30 ;
59
+ _sizeBlock = size;
60
+ _insetsBlock = edgeInsets;
61
+ _minimumLineSpacingBlock = minimumLineSpacing;
62
+ _minimumInteritemSpacingBlock = minimumInteritemSpacing;
63
+ _referenceSizeForHeaderBlock = referenceSizeForHeader;
64
+ _referenceSizeForFooterBlock = referenceSizeForFooter;
47
65
}
48
66
return self;
49
67
}
@@ -90,4 +108,28 @@ - (void)collectionView:(UICollectionView *)collectionView willDisplayCell:(UICol
90
108
[cell beginSomo ];
91
109
}
92
110
111
+ - (CGSize )collectionView : (UICollectionView *)collectionView layout : (UICollectionViewLayout*)collectionViewLayout sizeForItemAtIndexPath : (NSIndexPath *)indexPath {
112
+ return _sizeBlock (collectionView,collectionViewLayout,indexPath);
113
+ }
114
+
115
+ - (UIEdgeInsets)collectionView : (UICollectionView *)collectionView layout : (UICollectionViewLayout*)collectionViewLayout insetForSectionAtIndex : (NSInteger )section {
116
+ return _insetsBlock (collectionView,collectionViewLayout,section);
117
+ }
118
+
119
+ - (CGFloat )collectionView : (UICollectionView *)collectionView layout : (UICollectionViewLayout*)collectionViewLayout minimumLineSpacingForSectionAtIndex : (NSInteger )section {
120
+ return _minimumLineSpacingBlock (collectionView,collectionViewLayout,section);
121
+ }
122
+
123
+ - (CGFloat )collectionView : (UICollectionView *)collectionView layout : (UICollectionViewLayout*)collectionViewLayout minimumInteritemSpacingForSectionAtIndex : (NSInteger )section {
124
+ return _minimumInteritemSpacingBlock (collectionView,collectionViewLayout,section);
125
+ }
126
+
127
+ - (CGSize )collectionView : (UICollectionView *)collectionView layout : (UICollectionViewLayout*)collectionViewLayout referenceSizeForHeaderInSection : (NSInteger )section {
128
+ return _referenceSizeForHeaderBlock (collectionView,collectionViewLayout,section);
129
+ }
130
+
131
+ - (CGSize )collectionView : (UICollectionView *)collectionView layout : (UICollectionViewLayout*)collectionViewLayout referenceSizeForFooterInSection : (NSInteger )section {
132
+ return _referenceSizeForFooterBlock (collectionView,collectionViewLayout,section);
133
+ }
134
+
93
135
@end
0 commit comments