Skip to content

Commit 2c26508

Browse files
committed
0.7.7
1 parent 7f932b9 commit 2c26508

File tree

5 files changed

+70
-7
lines changed

5 files changed

+70
-7
lines changed

Somo.podspec

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
Pod::Spec.new do |s|
33

44
s.name = "Somo"
5-
s.version = "0.7.5"
5+
s.version = "0.7.7"
66
s.summary = "Somo is a Skeleton-style animation library that's simple enough."
77

88
s.homepage = "https://github.com/xorshine/Somo"

SomoDemo/SomoDemo/CommonViewController.m

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

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

1616
@end
@@ -22,7 +22,7 @@ - (void)viewDidLoad {
2222

2323
self.navigationItem.titleView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"Logo"]];
2424
self.navigationItem.titleView.contentMode = UIViewContentModeScaleAspectFit;
25-
25+
UICollectionView *c;
2626
[self.sview beginSomo];
2727
}
2828

SomoDemo/SomoDemo/Somo/SomoDataSourceProvider.h

+24-3
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,23 @@
1313
@protocol SomoSkeletonLayoutProtocol;
1414

1515
typedef UITableViewCell<SomoSkeletonLayoutProtocol> *(^SomoTableViewCellBlock)(UITableView *tableview, NSIndexPath *indexPath);
16-
typedef UICollectionViewCell<SomoSkeletonLayoutProtocol> *(^SomoCollectionViewCellBlock)(UICollectionView *tableview, NSIndexPath *indexPath);
16+
typedef UICollectionViewCell<SomoSkeletonLayoutProtocol> *(^SomoCollectionViewCellBlock)(UICollectionView *collectionView, NSIndexPath *indexPath);
1717

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

20+
typedef CGSize(^SomoCollectionViewLayoutSize)(UICollectionView *collectionView,UICollectionViewLayout*collectionViewLayout,NSIndexPath *indexPath);
21+
22+
typedef UIEdgeInsets(^SomoCollectionViewLayoutEdgeInsets)(UICollectionView *collectionView,UICollectionViewLayout*collectionViewLayout,NSInteger section);
23+
24+
typedef CGFloat(^SomoCollectionViewLayoutMinimumLineSpacing)(UICollectionView *collectionView,UICollectionViewLayout*collectionViewLayout,NSInteger section);
25+
26+
typedef CGFloat(^SomoCollectionViewLayoutMinimumInteritemSpacing)(UICollectionView *collectionView,UICollectionViewLayout*collectionViewLayout,NSInteger section);
27+
28+
typedef CGSize(^SomoCollectionViewLayoutReferenceSizeForHeader)(UICollectionView *collectionView,UICollectionViewLayout*collectionViewLayout,NSInteger section);
29+
30+
typedef CGSize(^SomoCollectionViewLayoutReferenceSizeForFooter)(UICollectionView *collectionView,UICollectionViewLayout*collectionViewLayout,NSInteger section);
31+
32+
2033
@interface SomoDataSourceProvider : NSObject<UITableViewDataSource,UITableViewDelegate,UICollectionViewDelegate,UICollectionViewDataSource>
2134

2235
/**
@@ -33,7 +46,15 @@ typedef CGFloat(^SomoTableViewCellHeightBlock)(UITableView *tableview, NSIndexPa
3346
/**
3447
If you have different cell styles, use the following method
3548
*/
36-
- (instancetype)initWithTableViewCellBlock:(SomoTableViewCellBlock)block heightBlock:(SomoTableViewCellHeightBlock)heightBlock;
37-
- (instancetype)initWithCollectionViewCellBlock:(SomoCollectionViewCellBlock)block;
49+
- (instancetype)initWithTableViewCellBlock:(SomoTableViewCellBlock)block
50+
heightBlock:(SomoTableViewCellHeightBlock)heightBlock;
51+
52+
- (instancetype)initWithCollectionViewCellBlock:(SomoCollectionViewCellBlock)block
53+
size:(SomoCollectionViewLayoutSize)size
54+
edgeInsets:(SomoCollectionViewLayoutEdgeInsets)edgeInsets
55+
minimumLineSpacing:(SomoCollectionViewLayoutMinimumLineSpacing)minimumLineSpacing
56+
minimumInteritemSpacing:(SomoCollectionViewLayoutMinimumInteritemSpacing)minimumInteritemSpacing
57+
referenceSizeForHeader:(SomoCollectionViewLayoutReferenceSizeForHeader)referenceSizeForHeader
58+
referenceSizeForFooter:(SomoCollectionViewLayoutReferenceSizeForFooter)referenceSizeForFooter;
3859

3960
@end

SomoDemo/SomoDemo/Somo/SomoDataSourceProvider.m

+43-1
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,12 @@ @implementation SomoDataSourceProvider
1717
SomoTableViewCellBlock _tableViewCellBlock;
1818
SomoTableViewCellHeightBlock _heightBlock;
1919
SomoCollectionViewCellBlock _collectionViewCellBlock;
20+
SomoCollectionViewLayoutSize _sizeBlock;
21+
SomoCollectionViewLayoutEdgeInsets _insetsBlock;
22+
SomoCollectionViewLayoutMinimumLineSpacing _minimumLineSpacingBlock;
23+
SomoCollectionViewLayoutMinimumInteritemSpacing _minimumInteritemSpacingBlock;
24+
SomoCollectionViewLayoutReferenceSizeForHeader _referenceSizeForHeaderBlock;
25+
SomoCollectionViewLayoutReferenceSizeForFooter _referenceSizeForFooterBlock;
2026
}
2127

2228
- (instancetype)initWithCellReuseIdentifier:(NSString *)reuseIdentifier{
@@ -40,10 +46,22 @@ - (instancetype)initWithTableViewCellBlock:(SomoTableViewCellBlock)block heightB
4046
return self;
4147
}
4248

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{
4456
if (self = [super init]) {
4557
_collectionViewCellBlock = block;
4658
_numberOfRowsInSection = 30;
59+
_sizeBlock = size;
60+
_insetsBlock = edgeInsets;
61+
_minimumLineSpacingBlock = minimumLineSpacing;
62+
_minimumInteritemSpacingBlock = minimumInteritemSpacing;
63+
_referenceSizeForHeaderBlock = referenceSizeForHeader;
64+
_referenceSizeForFooterBlock = referenceSizeForFooter;
4765
}
4866
return self;
4967
}
@@ -90,4 +108,28 @@ - (void)collectionView:(UICollectionView *)collectionView willDisplayCell:(UICol
90108
[cell beginSomo];
91109
}
92110

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+
93135
@end

0 commit comments

Comments
 (0)