list 征服iOS

ios-UITableView的初步学习

2015-07-25  本文已影响759人  歌白梨

每次写这些文字的时候都是直接步入正题,感觉太没有人情味了。。哈哈。。以下是一些使用TableView的基本知识。更深入的话,后面会更新的啦。。

1.继承自UIScrollView

2.两种风格

3.两个Delegate:dataSource和delegate

4.使用NSIndexPath来定位

5.只显示一列数据,只能纵向滑动

6.UITableViewController默认的会在viewWillAppear的时候,清空所有选中cell。

设置self.clearsSelectionOnViewWillAppear = NO,来禁用该功能,

在viewDidAppear中调用UIScrollView的flashScrollIndicators方法让滚动条闪动一次,提示用户该控件是可以滑动的。

7.cell重用机制

8.selectionStyle属性:指定cell选中时的显示风格,

accessoryType:指定cell右边的显示的内容,

accessoryView:定制右边显示的view。(UISwitch)

8.opaque属性:UIView的透明度属性,默认为半透明

9.要重构cell,可以直接将subView的drowRect方法重写, 将要加的subview定制在一个subView里面, 然后加入ContentView当中

10.subView最好还是添加到cell的contentView

如何提高tableView的性能

1、重用cell

我们都知道申请内存是需要时间,特别是在一段时间内频繁的申请内存将会造成很大的开销,而且上tebleView中cell大部分情况下布局都是一样的,这个时候我们可以通过回收重用机制来提高性能。重用cell有两步:

  我们需要先注册这个cell, registerClass or registerNib  

  然后在delegate 的方法里面deque这个cell ,两步使用相同的identifier 。

2、避免content的重新布局

尽量避免在重用cell时候,对cell的重新布局,一般情况在在创建cell的时候就将cell布局好。

prepareForReuse 方法是在deque方法之前调用的,方法可以重写一些对cell的更新布局,记住一定要[super prepareForReuse],也可以在里面实现通知取消上次对此cell的网络请求,因为已经重用啦,还发什么网络请求尼,方法里面最好不要包括content相关的更新.

3、使用不透明的subView

在定制cell的时候,将要添加的subView设置成不透明的会大大减少多个view层叠加时渲染所需要的时间。

4、如果方便,直接重载subView的drawRect方法

如果定制cell的过程中需要多个小的元素的话,最好直接对要显示的多个项目进行绘制,而不是采用添加多个subView。

5、tableView的delegate的方法如非必要,尽量不要实现

tableView的delegate中的很多函数提供了对cell属性的进一步控制,比如每个cell的高度,cell是否可以编辑,支持的edit风格等,如非必要最好不要实现这些方法因为快速的调用这些方法也会影响性能。

上一篇下一篇

猜你喜欢

热点阅读