首页 > 代码库 > [iOS基础控件 - 6.0] UITableView

[iOS基础控件 - 6.0] UITableView

A.需要掌握的
1.基本属性和方法
  • 设置UITableView的dataSource、delegate
  • UITableView多组数据和单组数据的展示
  • UITableViewCell的常见属性
  • UITableView的性能优化(cell的循环利用)
  • 自定义cell
 
2.UITableView的概念
UITableView就是表格数据
UITableView继承自UIScrollView,支持垂直滚动,而且性能好
 
3.UITableView的两种样式
  • UITableViewStylePlain
  • UITableViewStyleGrouped
 
 
4.展示数据
  • UITableView需要一个数据源dataSource来显示数据
  • UITableView向数据源查询一共有多少行数据和每一行的显示内容
  • 没有数据源的UITableView只是个空壳
  • 凡是遵守了UITableViewDataSource协议的OC对象,都可以是UITableView的数据源
 
5.UITableView和数据源
1 // 数据总组数2 - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView;              // Default is 1 if not implemented3  4 // 每组数据的行数5 - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section;6  7 // 每一行显示的内容8 - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath;
 
数据源引用:
1 // 数据源2 @property(nonatomic, assign) id<UITableViewDataSource> dataSource;
 
6.UITableView展示数据的过程
(1)得到数据的组数
1 - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView;
 
(2)得到每组数据的行数
1 - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section;
 
(3)得到每行数据的内容
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath;
 
7.解析.plist文件,将数据组中的每个Dictionary用Model封装起来存储
 
8.使用MVC模式
M: Model
V: View
C: Control
 
9.Cell简介
 
 
10.UITableViewCell的contentView
 
 
 
11.UITableViewCell的结构
Image(68)
 
 
12.Cell重用原理
     为了应对大量数据的加载和显示,不必创建相同数量的Cell,只需要把当前需要显示的数据加载到cell上就行了。
     原理:滚动列表,移出窗口的UITableViewCell会被放入到一个对象池中,当有数据需要显示的时候,就会从对象池中取出可用的UITableViewCell,然后加载数据显示。
 
13.自定义的cell重用
     有时候为了特定的需求,需要自定义继承自UITableViewCell的类,可能一个UITableView中存在多种cell,会造成对象池中cell类型的混乱。
     解决:利用UITableViewCell的 NSSting *reuseIdentifier 属性,初始化cell的时候指定reuseIdentifier,这样在对象池取出cell对象的时候要先通过这个字符串标识检查,如果不存在就是使用传入的字符串标识初始化一个cell对象。
 
14.cell重用代码
 
 
 
 
 
 

[iOS基础控件 - 6.0] UITableView