UITableView中数据只有行的概念,并没有列的概念,手机操作系统中显示多列是不利于操作的。
UITableView有Group和不分组的default style. group的例子: 通讯录按首字母的group等。
UITableView中每行数据都是一个UITableViewCell,在这个控件中为了显示更多的信息,iOS已经在其内部设置好了多个子控件以供开发者使用。如果我们查看UITableViewCell的声明文件可以发现在内部有一个UIView控件(contentView,作为其他元素的父控件)、两个UILable控件(textLabel、detailTextLabel)、一个UIImage控件(imageView),分别用于容器、显示内容、详情和图片。使用效果类似于微信、QQ信息列表
UITableView
{
UITableViewCell --->{UIView-->{UILabel(textLabel,detailTextLabel), UIImageView}
UITableViewCellStyle---> 设置Cell的类型。
}
数据源:
UITableViewDataSource协议,datasource对象要实现这个协议里的非Optional项。
Section: 分组.
NSIndexPath是一个结构体,记录了组和行信息。[原以为是行列信息. :( ]
UITableViewDataSource要实现的协议
#pragma mark 返回分组数
-(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView#pragma mark 返回每组行数
-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
#pragma mark返回每行的单元格
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
//NSIndexPath是一个结构体,记录了组和行信息。indexPath.section,indexPath.row
#pragma mark 返回每组头标题名称
-(NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section
#pragma mark 返回每组尾部说明
-(NSString *)tableView:(UITableView *)tableView titleForFooterInSection:(NSInteger)section
#pragma mark 返回每组标题索引
-(NSArray *)sectionIndexTitlesForTableView:(UITableView *)tableView