码迷,mamicode.com
首页 > 移动开发 > 详细

【iOS开发-64】微博案例练习:用代码自定义cell,主要内容是针对不同高度的cell

时间:2014-10-28 12:19:30      阅读:214      评论:0      收藏:0      [点我收藏+]

标签:blog   http   io   os   ar   使用   for   数据   on   

(1)效果

bubuko.com,布布扣


(2)源代码和素材下载

http://download.csdn.net/detail/wsb200514/8089727


(3)总结

——可以利用xib布局cell,但是这种情况的cell时固定高度

——如果每个cell是不同高度,则需要用到代码,核心思想是根据cell里面子控件的高度计算这个cell的高度

——这里面用到的知识点之一,计算一段文字所占据的高宽,就是确定文字大小,文字宽度之后,可以利用一个方法计算出这段文字的宽高,当然这个方法返回的东西很多,size只是其中之一的属性。

    CGSize nameMaxSize=CGSizeMake(MAXFLOAT, MAXFLOAT);
    NSDictionary *nameAttr=@{NSFontAttributeName:[UIFont systemFontOfSize:14]};
    CGSize nameSize=[self.status.name boundingRectWithSize:nameMaxSize options:NSStringDrawingUsesLineFragmentOrigin attributes:nameAttr context:nil].size;

——知识点之二,因为这个项目一打开的主页就是一个滚动的视图也就是一个tableView,所以我们可以删除项目原先的ViewController,创建一个tableViewController作为主入口。把这个控制器作为主入口的设置是:is Initial View Controller,打钩即可。(删除这个控制器自带的cell)

bubuko.com,布布扣


——知识点之三,还是封装。模型、视图、控制器各司其职。

——对于只提供外界访问的变量,即只有getter的那些变量,在@property时候增加一个readonly,防止被其他人修改。

——plist里面的number类型数据的1和0,可以被直接转换成BOOL 的0和1。

——修改cell高度的除了直接用tableView.cellHeight这个属性之外,还有一个代理方法,就是本例中用到的方法。

-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{

}

——对于部分控件,如果有的话就显示,如果没有就隐藏,这里面hidden属性至关重要,而且hidden的YES和NO最好是成对出现。因为这些cell会被放入缓存池,再次取出来使用的时候如果没有判断是否显示则会出错。

【iOS开发-64】微博案例练习:用代码自定义cell,主要内容是针对不同高度的cell

标签:blog   http   io   os   ar   使用   for   数据   on   

原文地址:http://blog.csdn.net/weisubao/article/details/40536781

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