iOS 9 swift 入门 中级 iphone开发

UITableView以及相关类

2016-03-09  本文已影响52人  lisheng

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

上一篇下一篇

猜你喜欢

热点阅读