码迷,mamicode.com
首页 > 其他好文 > 详细

自定义xib

时间:2014-12-16 20:50:06      阅读:166      评论:0      收藏:0      [点我收藏+]

标签:style   blog   ar   io   color   使用   sp   for   strong   

一、加载xib文件的两种方式
1.方法一(NewsCell是xib文件的名称)
NSArray *objects = [[NSBundle mainBundle] loadNibNamed:@“NewsCell” owner:nil options:nil];

2.方法二
UINib *nib = [UINib nibWithNibName:@“”NewsCell” bundle:nil];
NSArray *objects = [nib instantiateWithOwner:nil options:nil];

二、设置cell的高度
1.如果每一行cell的高度都是一样的,直接使用tableView的rowHeight属性设置cell的高度即可
tableView.rowHeight = 80;

2.如果每一行cell的高度不一定一样,应该用代理方法设置cell的高度
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{

    //返回indexPath这行对应Cell的高度
    return 80;
}

三、UITableViewController
1.UITableViewController内部默认会创建一个UITableView *tableView
2.UITableViewController内部tableView的delegate(代理)和dataSource(数据源)就是这个UITableViewController
3.UITableViewController内部tableView就是控制器的view

四、自定义cell
1.通过xib
1>一定要注意在xib的cell中设置重用标识(reuse identifier)
2>封装的步骤
*新建xib描述cell的样子—DealCell.xib
*新建UITableViewCell的子类—--DealCell(封装xib内部的所有东西)
*修改xib中cell的类名(class)为DealCell
*在DealCell中拥有xib中的所有子控件(声明属性、进行连线)
*新建模型Deal,封装数据
*给DealCell增加模型属性
    @property (nonatomic,strong) Deal *deal;
*重写setDeal:方法,在这个方法中根据模型数据设置cell内部子控件的属性
*提供一个类方法,返回从xib中创建好的cell对象
*给xib中的cell添加一个重用标志(比如deal),提供一个类方法,返回重用标志
*提供一个类方法,返回cell的高度
3>使用cell
*利用重用标志去缓存池取得cell
*如果缓存池没有cell,创建cell
*传递模型给cell

2.通过代码
1>新建一个UITableViewCell的子类——WeiboCell

2>在创建cell的时候(initWithStyle:reuseIdentifier:方法中)添加cell内部需要使用的子控件
(注意:只管创建子控件,先不要去管子控件的位置和尺寸)

3>新建一个模型类——Weibo,增加对应的数据属性

4>给WeiboCell增加一个Weibo模型属性,在拿到Weibo模型数据的同时设置子控件的属性
5>重写setWeibo:方法,在里面取出Weibo模型的数据显示在子控件上

 

自定义xib

标签:style   blog   ar   io   color   使用   sp   for   strong   

原文地址:http://www.cnblogs.com/ZhangYuGe/p/4167927.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!