iOS 之UITableViewCell的自定义

一. 自定义cell

创建一个类继承UITableViewCell确保所有想要添加的子视图都在自定义cell的初始化方法中创建,由于cell使用的是重用机制,一个cell在下一次调用的时候不会走初始化方法,这样可以调高内存的使用效率避免子视图重复创建.cell的子视图声明成为该自定义cell的属性.

在layoutSubViews方法中设置cell中子视图的frame是根据cell的自身的大小来确定子视图的大小.子视图是添加在cell上的contentView上的.


二. Modal类型对象的使用

MVC的使用,Modal Value Controller的配合使用.Modal类主要是为我们提供数据,继承于NSObject的类都称之为modal.OC中的KVC就是帮我们把字典转换为modal类存在的.

创建的步骤:

1. 创建一个类继承自NSObject

2. 添加和字典对应的属性(属性名与字典的键值必须相同)

3. 在视图控制器中将字典同过KVC为modal赋值.

4. 将modal对象添加到数组中并刷新tableView

将数组中的Dictionary的对象转换成为modal对象.kvc方法setValuesForKeysWithDictionary给Modal类型的属性赋值,然后将其对象添加到数组中方便使用.自定义cell中指定modal类型为其的一个属性.在给cell上的子视图赋值的时,使用modal为其属性赋值.(注意:自定义cell中给其子视图属性赋值,是写在其modal的setter方法中的).在modal类型的类的.m文件中- (void)setValue:(id)value forUndefinedKey:(NSString *)key 写该方法,则取出字典中多出来(或不使用的键值对).


三. 多种cell的混合使用

多种cell的混合使用,注意注册的使用队列不同,通过cell在当前是哪个位置,来进行判断使用哪种类型的cell.


四. cell自适应高度

文本自适应高度:根据文本的内容设定Label的高度.

contentView的height比cell低0.5

[string boundingRectWithSize:CGSizeMake(tableView.bounds.size.width - 10, 0) options:NSStringDrawingUsesLineFragmentOrigin attributes:@{NSFontAttributeName:[UIFont systemFontOfSize:17]} context:nil] 通过此方法可以将文本自适应cell高度并且全部显示.

图片自适应高度:根据图片的宽度进行等比例缩放.

例如将图片处理成为宽度200并且不失帧,即高度为 orginHeight / (orginWidth / 200).

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 目前个人总结三种方法 一.使用storyboard自定义UITableViewCell 在Storyboard的相...
    Flyman阅读 2,279评论 0 0
  • *面试心声:其实这些题本人都没怎么背,但是在上海 两周半 面了大约10家 收到差不多3个offer,总结起来就是把...
    Dove_iOS阅读 27,219评论 30 472
  • 翻译自“Collection View Programming Guide for iOS” 0 关于iOS集合视...
    lakerszhy阅读 3,928评论 1 22
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,259评论 4 61
  • 我相信有很多小伙伴和我一样:每次嚷嚷着要早睡,但都眼看着时针走到了凌晨。翌日,面对着自己的早起困难症,你是否又咬牙...
    Jia的加加减减阅读 609评论 0 0