引述:
對于一個電商平臺,當用戶注冊完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。。。。