Skip to content

Commit abebe7a

Browse files
committed
0.7.8
1 parent 2c26508 commit abebe7a

File tree

4 files changed

+24
-8
lines changed

4 files changed

+24
-8
lines changed

SomoDemo/SomoDemo/CommonViewController.m

+1-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
#import "SView.h"
1111
#import "Somo.h"
1212

13-
@interface CommonViewController ()<UICollectionViewDelegateFlowLayout>
13+
@interface CommonViewController ()
1414
@property (weak, nonatomic) IBOutlet SView *sview;
1515

1616
@end

SomoDemo/SomoDemo/Somo/SomoDataSourceProvider.h

+6
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,10 @@ typedef UICollectionViewCell<SomoSkeletonLayoutProtocol> *(^SomoCollectionViewCe
1717

1818
typedef CGFloat(^SomoTableViewCellHeightBlock)(UITableView *tableview, NSIndexPath *indexPath);
1919

20+
typedef NSInteger(^SomoCollectionViewNumberOfSectionBlock)(UICollectionView *collectionView);
21+
22+
typedef NSInteger(^SomoCollectionViewNumberOfRowInsSections)(UICollectionView *collectionView,NSInteger section);
23+
2024
typedef CGSize(^SomoCollectionViewLayoutSize)(UICollectionView *collectionView,UICollectionViewLayout*collectionViewLayout,NSIndexPath *indexPath);
2125

2226
typedef UIEdgeInsets(^SomoCollectionViewLayoutEdgeInsets)(UICollectionView *collectionView,UICollectionViewLayout*collectionViewLayout,NSInteger section);
@@ -50,6 +54,8 @@ typedef CGSize(^SomoCollectionViewLayoutReferenceSizeForFooter)(UICollectionView
5054
heightBlock:(SomoTableViewCellHeightBlock)heightBlock;
5155

5256
- (instancetype)initWithCollectionViewCellBlock:(SomoCollectionViewCellBlock)block
57+
sections:(SomoCollectionViewNumberOfSectionBlock)sections
58+
rows:(SomoCollectionViewNumberOfRowInsSections)rows
5359
size:(SomoCollectionViewLayoutSize)size
5460
edgeInsets:(SomoCollectionViewLayoutEdgeInsets)edgeInsets
5561
minimumLineSpacing:(SomoCollectionViewLayoutMinimumLineSpacing)minimumLineSpacing

SomoDemo/SomoDemo/Somo/SomoDataSourceProvider.m

+17-7
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,8 @@
1414
@implementation SomoDataSourceProvider
1515
{
1616
NSString * _reuseIdentifier;
17+
SomoCollectionViewNumberOfSectionBlock _sectionsBlock;
18+
SomoCollectionViewNumberOfRowInsSections _rowsBlock;
1719
SomoTableViewCellBlock _tableViewCellBlock;
1820
SomoTableViewCellHeightBlock _heightBlock;
1921
SomoCollectionViewCellBlock _collectionViewCellBlock;
@@ -47,6 +49,8 @@ - (instancetype)initWithTableViewCellBlock:(SomoTableViewCellBlock)block heightB
4749
}
4850

4951
- (instancetype)initWithCollectionViewCellBlock:(SomoCollectionViewCellBlock)block
52+
sections:(SomoCollectionViewNumberOfSectionBlock)sections
53+
rows:(SomoCollectionViewNumberOfRowInsSections)rows
5054
size:(SomoCollectionViewLayoutSize)size
5155
edgeInsets:(SomoCollectionViewLayoutEdgeInsets)edgeInsets
5256
minimumLineSpacing:(SomoCollectionViewLayoutMinimumLineSpacing)minimumLineSpacing
@@ -55,6 +59,8 @@ - (instancetype)initWithCollectionViewCellBlock:(SomoCollectionViewCellBlock)blo
5559
referenceSizeForFooter:(SomoCollectionViewLayoutReferenceSizeForFooter)referenceSizeForFooter{
5660
if (self = [super init]) {
5761
_collectionViewCellBlock = block;
62+
_sectionsBlock = sections;
63+
_rowsBlock = rows;
5864
_numberOfRowsInSection = 30;
5965
_sizeBlock = size;
6066
_insetsBlock = edgeInsets;
@@ -92,8 +98,12 @@ - (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)ce
9298

9399
#pragma mark - collection
94100

101+
- (NSInteger)numberOfSectionsInCollectionView:(UICollectionView *)collectionView{
102+
return _sectionsBlock(collectionView);
103+
}
104+
95105
- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section{
96-
return self.numberOfRowsInSection;
106+
return _rowsBlock(collectionView,section);
97107
}
98108

99109
- (__kindof UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath{
@@ -109,27 +119,27 @@ - (void)collectionView:(UICollectionView *)collectionView willDisplayCell:(UICol
109119
}
110120

111121
- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath{
112-
return _sizeBlock(collectionView,collectionViewLayout,indexPath);
122+
return _sizeBlock ? _sizeBlock(collectionView,collectionViewLayout,indexPath) : CGSizeZero;
113123
}
114124

115125
- (UIEdgeInsets)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout insetForSectionAtIndex:(NSInteger)section{
116-
return _insetsBlock(collectionView,collectionViewLayout,section);
126+
return _insetsBlock ? _insetsBlock(collectionView,collectionViewLayout,section) : UIEdgeInsetsZero;
117127
}
118128

119129
- (CGFloat)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout minimumLineSpacingForSectionAtIndex:(NSInteger)section{
120-
return _minimumLineSpacingBlock(collectionView,collectionViewLayout,section);
130+
return _minimumLineSpacingBlock ? _minimumLineSpacingBlock(collectionView,collectionViewLayout,section) : 0.f;
121131
}
122132

123133
- (CGFloat)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout minimumInteritemSpacingForSectionAtIndex:(NSInteger)section{
124-
return _minimumInteritemSpacingBlock(collectionView,collectionViewLayout,section);
134+
return _minimumInteritemSpacingBlock ? _minimumInteritemSpacingBlock(collectionView,collectionViewLayout,section) : 0.f;
125135
}
126136

127137
- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout referenceSizeForHeaderInSection:(NSInteger)section{
128-
return _referenceSizeForHeaderBlock(collectionView,collectionViewLayout,section);
138+
return _referenceSizeForHeaderBlock ? _referenceSizeForHeaderBlock(collectionView,collectionViewLayout,section) : CGSizeZero;
129139
}
130140

131141
- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout referenceSizeForFooterInSection:(NSInteger)section{
132-
return _referenceSizeForFooterBlock(collectionView,collectionViewLayout,section);
142+
return _referenceSizeForFooterBlock ? _referenceSizeForFooterBlock(collectionView,collectionViewLayout,section) : CGSizeZero;
133143
}
134144

135145
@end

0 commit comments

Comments
 (0)