iOS开发项目篇—40搭建cell的基本结构
iOS开发项目篇—40搭建cell的基本结构
一、简单说明
1.策略:针对微博可能出现的多种情况(只有文字,有文字有配图,有转发微博等),一次性加载所用的子控件到cell中,对于没有数据的空间进行隐藏。(不管cell以后会显示什么子控件,把所有有可能显示的子控件都添加上去·添加到contentView上)
微博cell的显示示例:
2.自定义cell的步骤:
二、cell的结构分析
提示:如果在调整的事后需要“统一行动”的子控件,可以考虑先把他们作为一个群组添加到一个view中进行管理。不要吝啬UI控件,控件是不占内存的,图片占内存。
只有工具条和微博具体内容这两个View是直接面向contentView的
三、新建类,对类进行顶层设计
自定义cell类,其继承自UITableViewcell
整体结构:
类中的代码设计:
YYStatusCell.m文件
1 // 2 // YYStatusCell.m 3 // 34-微博搭建cell的基本结构 4 // 自定义cell 5 6 #import "YYStatusCell.h" 7 #import "YYStatusDetailView.h" 8 #import "YYStatusToolbar.h" 9 10 @interface YYStatusCell () 11 @property(nonatomic,weak)YYStatusDetailView *detailView; 12 @property(nonatomic,weak)YYStatusToolbar *toolbar; 13 @end 14 15 @implementation YYStatusCell 16 17 - (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier 18 { 19 self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]; 20 if (self) { 21 //初始化子控件 22 23 //1.添加微博具体内容 24 [self setupDetailView]; 25 26 //2.添加工具条 27 [self setupToolbar]; 28 } 29 return self; 30 } 31 32 /**添加微博具体内容*/ 33 -(void)setupDetailView 34 { 35 YYStatusDetailView *detailView=[[YYStatusDetailView alloc]init]; 36 [self.contentView addSubview:detailView]; 37 self.detailView=detailView; 38 } 39 40 /**添加工具条*/ 41 -(void)setupToolbar 42 { 43 YYStatusToolbar *toolbar=[[YYStatusToolbar alloc]init]; 44 [self.contentView addSubview:toolbar]; 45 self.toolbar=toolbar; 46 } 47 48 @end
YYStatusDetailView.m文件
1 // 2 // YYStatusDetailView.m 3 // 34-微博搭建cell的基本结构 4 // 5 6 #import "YYStatusDetailView.h" 7 #import "YYStatusOriginalView.h" 8 #import "YYStatusRetweetedView.h" 9 10 @interface YYStatusDetailView () 11 @property(nonatomic,weak)YYStatusOriginalView *OriginalView; 12 @property(nonatomic,weak)YYStatusRetweetedView *retweetedView; 13 @end 14 @implementation YYStatusDetailView 15 16 - (id)initWithFrame:(CGRect)frame 17 { 18 self = [super initWithFrame:frame]; 19 if (self) { 20 //初始化子控件 21 22 //1.添加原创微博 23 [self setupOriginalView]; 24 25 //2.添加转发微博 26 [self setupRetweetedView]; 27 } 28 return self; 29 } 30 /**添加原创微博*/ 31 -(void)setupOriginalView 32 { 33 YYStatusOriginalView *OriginalView = [[YYStatusOriginalView alloc]init]; 34 [self addSubview:OriginalView]; 35 self.OriginalView=OriginalView; 36 37 } 38 /**添加转发微博*/ 39 -(void)setupRetweetedView 40 { 41 YYStatusRetweetedView *retweetedView = [[YYStatusRetweetedView alloc]init]; 42 [self addSubview:retweetedView]; 43 self.retweetedView=retweetedView; 44 } 45 @end
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。