---恢复内容开始---
主要参考官方reference和一片枫叶,然后看下官方sample code。学到多少就记录多少,不会画图语言也不清晰-_-#。
-----------------------------------------------
command+f搜官方reference有6个类:UITableViewController、 UITableView、 UITableViewDelegate、 UITableViewCell、 UITableViewDataSource Prototol、 UITableViewHeaderFooterView。
一、UITableViewController
UITableViewcontroller是MVC模式中的C,他创建一个控制器对象管理a table view。实现以下行为:
- 如果一个nib 文件通过initWithNibName:bundle创建,就加载nib文件存档中的他,否则创建一个table view。可以通过tableView属性。
- 如果一个含table view的nib文件被加载,data source和delegate被nib文件定义。如果没有nib指定,UITableViewController把他设置给self.
- 每次table view显示时,都会加载table view的数据。
- 当table view已经出现,回闪烁scroll indicators滚动条。
- 如果用户按导航栏中的“编辑|完成”按钮,回进入编辑模式。
Tasks
Initializing the UITableViewController Object
Getting the Table View
tableView
property
Configuring the Table Behavior
clearsSelectionOnViewWillAppear
property iOS 6.0
Refreshing the Table View
refreshControl
property
视图控制器更新控件的高度和宽度,并适当地设置其位置。
controller不会自动更新content响应用户交互中的刷新。当用户发起刷新操作,控制产生UIControlEventValueChanged的的事件。你必须与此事件关联target目标和action method行动方法,并用它们来刷新表的内容。
二、UITableView
table view 用于用于显示和编辑信息的分层列表。UIKit框架中仅限于单个列,因为它是一个小屏幕设备设计。他是UIScrollView的一个子类,允许用户通过table滚动,虽然只允许垂直滚动。
组成table中的独立的item的cell,属于UITableViewCell对象。cell有content - title and image-靠近右边缘的accessory view(附加视图)。标准accessory view是披露指标或详细披露按键;前者导致一个新的水平在数据层次,而后者会导致选择的项目的详细视图。accessory view也可以是框架控件,如switch和slider,或者可以自定义视图。table view可以进入编辑模式,用户可以插入,删除和重新排序表中的行。
A table view is made up of zero or more sections, each with its own rows. Any section can have a header and a footer optionally.
Table view 包含两种风格UITableViewStylePlain and UITableViewStyleGrouped.创建时必须指定一种风格,并且不能再改变。plain风格的section header and footer 浮再content上面。table view右边可以有index(比如a-z),就可以touch a label跳转到指定区域。Grounped风格为所有cell提供默认的背景颜色和background view,比如一组可能是一个人的名字另一组是电话。grounded风格不能有index。
UITableView中的许多方法把NSIndexPath对象作为参数并返回值。NSindexPath 包括row 和 section。
table view必须有data source protocol和delegate protocol,一般delegate给controller。前者管理数据,后者管理高亮等配置。
三、UITableViewCell
UITableView中显示的每一个单元都是一个UITableViewCell对象,看文档的话我们会发现其初始化函数initWithStyle:reuseIdentifier:比较特别,跟我们平时看到的UIView的初始化函数不同。这个主要是为了效率考虑,因为在tableView快速滑动的滑动的过程中,频繁的alloc对象是比较费时的,于是引入了cell的重用机制,这个也是我们在dataSource中要重点注意的地方,用好重用机制会让我们的tableView滑动起来更加流畅。
第二步开sample code和详细函数了。。。。。