[iOS学习]表视图(一)

作者: AmazingMiracle | 来源:发表于2016-09-21 23:26 被阅读0次

表视图(UItableView)是iOS开发中使用最频繁的视图。一般情况下,我们都会选择以表的形式来展现数据,比如通讯录和频道列表等。在表视图中,分节、分组和索引等功能是我们所展示的数据更规整、更有条理。但是使用的时候,表视图也更难一些。

组成

表头视图:表视图最上面的视图。
表脚视图:表视图最下面的视图。
单元格:表视图每一行的单元视图。
节:由多个单元格组成的一组。每个表视图可以由一个或多个节组成。

-节头:节的头,文字左对齐
-节脚:节的脚,文字左对齐

表视图继承自UIScrollView,且有两个协议:UITableViewDelegate委托协议和UITableViewDataSource数据源协议。表视图还包含很多类,UITableViewCell类是单元格类,UITableViewController类是UITableView的控制器,UITableViewHeaderFooterView类用于为节头节脚提供视图。

分类

普通表视图:主要用户动态表,而动态表一般在单元格数目未知的情况下使用。
分组表视图:一般用于静态表,用来进行界面布局,它会将表分成很多组,这些组由相近的单元格组成。

在需要的时候也可以对表视图进行合理的创新。

单元格

单元格由一个contentView和一个扩展视图组成。我们需要展示数据的地方就是contentView,任何的控件视图都可以往里面添加,例如UIButto,UILabel,UIImageView等等。单元格还有一个默认的隐藏的部分是扩展视图,一般较少用到,而用到的时候使用accessoryType属性来设置,或者使用accessoryView来添加。
accessoryType是一个枚举类型,默认是None,没有扩展图标;还有以下三种枚举成员:

-DisclosureIndicator,触摸该图标切换到下一级表视图,图标为一个向右的箭头;
-DetailDisclosureButton,触摸该单元格时,表视图会以视图的方式展示当前单元格的更多详细信息,图标为一个圈中间加感叹号;
-CheckMark,表示该行被选中,图标为对号。

数据源协议和委托协议

必须要实现的方法:
·返回某个节中的行数
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section;
·为表视图单元格提供数据
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath;
可选实现的方法:
数据源协议主要方法:
·返回节数
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView;
·返回节头的标题
- (nullable NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section; 
·返回节脚的标题
- (nullable NSString *)tableView:(UITableView *)tableView titleForFooterInSection:(NSInteger)section;
·提供表视图节索引标题
- (nullable NSArray<NSString *> *)sectionIndexTitlesForTableView:(UITableView *)tableView;
委托协议主要方法:
·单元格高度
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath;
·头视图高度
- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section;
·脚视图高度
- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section;
·提供头视图
- (nullable UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section;
·提供脚视图
- (nullable UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section;
·选中单元格时调用
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath;

相关的方法其实还有很多,比如显示头视图时调用的方法,单元格消失时调用的方法等等。

相关文章

  • [iOS学习]表视图(一)

    表视图(UItableView)是iOS开发中使用最频繁的视图。一般情况下,我们都会选择以表的形式来展现数据,比如...

  • iOS学习:表视图(二)

    上一篇简单介绍了表视图的一些基本概念,这一篇来做一个小小的Demo。表视图的加载顺序是当视图控制器加载表视图时访问...

  • UITableView

    表视图的基本概念 一、表视图的介绍 1、表视图,是iOS中最重要的试图,很多应用程序都会使用到, 2、表试图里面可...

  • Human Interface Guidelines——Refr

    尝试阅读《Human Interface Guidelines》原文翻译学习iOS设计指南。 通常在表视图中可以通...

  • iOS--表视图(UITableViewController)的

    一、表视图的介绍 1、表视图,是iOS中最重要的试图,很多应用程序都会使用到, 2、表试图里面可以放很多行信息 3...

  • swift 4.2代码实现表视图UITableView

    表视图的组成 表头视图: 表视图最上边的视图,用于展示表视图的信息,也可以放搜索栏 表脚视图: 表视图最下边的视图...

  • UITableView和UITableViewCell

    一:UITableViewUITableView表视图。表示图在我们日常的iOS开发中应用非常广泛。descrip...

  • 初识iOS表视图UITableView

    记录一个菜鸟的iOS学习之旅,如能帮助正在学习的你,亦枫不胜荣幸;如路过的大神如指教几句,亦枫感激涕淋! 表视图 ...

  • ORACLE之视图和系统函数

    视图 视图是什么? 视图(View)是从一个或多个表(或视图)导出的表。视图与数据库中的物理表不同,视图是一个虚表...

  • 集合视图UICollectionView

    1.概念 iOS6引入了集合视图(UICollectionView),它是一种网格状视图,其功能远远超越了标准的表...

网友评论

    本文标题:[iOS学习]表视图(一)

    本文链接:https://www.haomeiwen.com/subject/ztgaettx.html