引述:
对于一个电商平台,当用户注册完APP,登录之后,首先展示给我用户的应该就是我们所熟悉的商品展示页面,也就是一般APP所谓的首页。当首页展示在我们眼前,首先引起我们注意的恐怕就是那广告轮播图了吧。由于已经有团队封装了一个超级好用的轮播图,所以没有再做封装,而且我开发的只要用到轮播的地方都是用的这个框架。
- 轮播框架推荐:SDCycleScrollView
SDCycleScrollView一款☆☆☆“iOS图片,文字轮播器”☆☆☆,功能强大,由gsdios 高少东封装。
说完轮播,那么接下来就是商品展示了,通常我们会使用TableView控件来进行商品展示,而且我一直这么认为,没有TableView完成不了的界面。。O(∩_∩)O!!不过可能有的盆友会使用UICollectionView进行布局,可是,不管我们使用哪种方式,不可避免的我们都会使用到自定义Cell,而对于大多数更习惯使用纯代码布局的iOS老人来说,他们有一个很强大的助手,那就是Masonry
Masonry是一个轻量级的布局框架拥有自己的描述语法采用更优雅的链接语法封装自动布局简洁明了并具有高可读性而且同时支持iOS和Max OS X.
但是在使用Masonry布局自定义Cell的时候,我们通常在计算Cell的高度问题上,手动计算TableViewCell的高度常常会使一些开发者头大,本人之前也很苦恼,后来为了能够在方便自己布局,于是写了这么一个可以自动计算Cell的扩展。DWQCellAutoHeightWithMasonry有了它,妈妈再也不用担心我的动态行高问题了!
使用方法
1.将DWQCellAutoHeightWithMasonry文件夹拖入工程中,然后在PCH文件中引入头文件,或者在需要的Controller中引入头文件''UITableViewCell+DWQCellAutoHeightWithMasonry.h''
2.在自定义的Cell.h文件中声明两个属性,最后一个UIview控件dwq_lastViewInCell,和距离最后一个控件的高度 dwq_bottomOffsetToCell,示例代码如下
#import <UIKit/UIKit.h>
@interface CustomTableViewCell : UITableViewCell
@property (nonatomic,strong) UIImageView *pic;
@property (nonatomic,strong) UILabel *name;
@property (nonatomic,strong) UILabel *JS;
@property (nonatomic,strong) UILabel *GitHub;
@property (nonatomic, strong) UIView *dwq_lastViewInCell;//最后一个控件
@property (nonatomic,assign) CGFloat dwq_bottomOffsetToCell;//距离最后一个控件的高度
@end
3.然后在UITableview的返回行高的代理方法中调用 + (CGFloat)dwq_heightForIndexPath:(NSIndexPath *)indexPathconfig:(DWQCellBlock)config;示例代码如下:
-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{
//
//自动返回cell的高度
return [CustomTableViewCell dwq_heightForTableView:self.tableview config:^(UITableViewCell *sourceCell) {
//由于数据源不同而每个cell高度又不同的需要在这里设置数据源,cell高度统一的话则无需设置model
//[cellconfigCellWithModel:model];
}];
}
Demo下载地址
DWQCellAutoHeightWithMasonry
朋友记得关注简书,点喜欢噢~~动动您的小手,为我的GitHub点Star。。。。
网友评论