UITableview

在我看来 UITableView 可以说是最重要的IOS控件了,没有之一了,基本稍微复杂一些的数据展示都会用到.下面是对最近使用的一些总结。

UITableView 由section 和 cell组成,需要用户自己实现其两个代理(一个关于dataSource ,另一个是关于一些behavior 的响应行为),比较典型的是有几个section,每个section几个cell, 也可以自己定制某个section或者cell的外观,在里面add 一些view, 达到需要的效果。

UITableView 有两种style,一种是plain ,一种是grouped.后者比前者多了一个backgroundView,会覆盖在backgroundColor的上方,当然你可以将其设为Nil,这样grouped 的圆角效果就没有(窃以为圆角效果就是由backgroundView实现的。

section部分默认就是插入了一个section label,可以通过代理customize 这个label的外观,基本可以达到希望的任何效果。

UITableViewCell 是一个重要的部分。

(1)cell引入了reuse机制,但是其实只是省去了初始化默认cell的时间,如果cell的外观比较复杂,其实节省不了时间,但是应该可以自己实现reuse的机制。本质就是把cell push到一个stack 里面(可能有问题,应该是存在cache中,具体哪儿不清楚),保存的数目比一屏幕的cell再多几个。

(2)cell每次默认初始化的时候都是320*34,但是在cellWllDisplay的时候会根据tableview的情况改变自己的frame,所以感觉只有在willDisplay这个代理中改变cell的frame才有意义,但是这样的话在建立cell的时候如果add subview那subview的frame将如何设置呢,难道也要在这个代理中设置么,这个地方还不是很清楚(或许可以在layoutSubView中设置)

(3)默认的cell上面基本是空的,但是他默认会有两个label和一个imageview,在edit模式下还有一个accesoryView不过会直到你要调用这些控件,才会create,否则应该都是Nil。这样设计可以表面浪费内存,提高效率。

(4)如果是grouped类型的,cell的appearance比较奇怪,backgroundView比cell的view要小,不知道依次调用以下接口(具体名称忘记,仅意会)

UITableView的动作触发设计的非常好。 (这段比较水,忘记了要,下次要及时记录)

(1)willHighlight (2)didHighlight (3)will select (4)didSelect (5)afterSelect

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值