[转载]iOS- 显示数据列表最常用的一个控件UITableView – 清澈Saup – 博客园.
相信做过iOS的程序员,最熟悉的控件一定少不了UITableView,最常用的控件也一定少不了UITableView!
今天分享一下自己对UITableView的实现大体思路,和整理出来的学习笔记!
1.UITableView里的结构图
2.UITableView数据展示的条件
1> UITableView的所有数据都是由数据源(dataSource)提供的,所以要想在UITableView展示数据,必须设置UITableView的dataSource数据源对象
2> 要想当UITableView的dataSource对象,必须遵守UITableViewDataSource协议,实现相应的数据源方法
3> 当UITableView想要展示数据的时候,就会给数据源发送消息(调用数据源方法),UITableView会根据方法返回值决定展示怎样的数据
3.数据展示的过程
数据显示,三步走
1> 先调用数据源的
– (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
得知一共有多少组
2> 然后调用数据源的
– (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
得知第section组一共有多少行
3> 然后调用数据源的
– (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
得知第indexPath.section组 第indexPath.row 行显示怎样的cell(显示什么内容)
4.开发中经常用到的UITableView数据源方法
1> 一共有多少组
– (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
2> 第section组一共有多少行
– (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
3> 第indexPath.section组 第indexPath.row行显示怎样的cell(显示什么内容)
– (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
4> 第section组显示怎样的头部标题
– (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section;
5> 第section组显示怎样的尾部标题
– (NSString *)tableView:(UITableView *)tableView titleForFooterInSection:(NSInteger)section;
5.开发中经常用到的UITableView代理方法
选中了UITableView的某一行
某一行的高度
第section分区头部的高度
第section分区尾部的高度
5.- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
第section分区头部显示的视图
第section分区尾部显示的视图
设置每一行的等级缩进(数字越小,等级越高)
6.tableView刷新数据的方式
1> 修改模型数据
2> 刷新表格
– reloadData
整体刷新(每一行都会刷新)
– (void)reloadRowsAtIndexPaths:(NSArray *)indexPaths withRowAnimation:(UITableViewRowAnimation)animation
局部刷新