UITableView之所以支持滚动,是因为继承自UIScrollView。默认是垂直滚动,性能极佳。

UITableView的两种样式:

1.UITableViewStylePlain       例如通讯录的视图。

2.UITableViewStyleGrouped 分组样式,例如微信的发现视图。

如何在TableView上显示数据:

需要通过一个数据源(dataSource)来展示数据。UITableView会向数据源发送消息查询一共有多少行数据以及每一行显示什么内容。

第一步:遵循数据源的protocol,并且设置tableView的数据源为自身:

可以通过拖线绑定dataSource,也可以通过self.tableView.dataSource=self;设定TableView的数据源为控制器。

@interface ViewController () <UITableViewDataSource>
self.tableView.dataSource = self;

第二步:重写protocol中规定的一些方法,来告诉TableView分几组,每组显示多少数据,以及在对应的组和行显示什么样的数据。

在TableView中,用section表示组,row表示行,这两个数据合起来称为indexPath,从而实现定位。

1. numberOfSectionsInTableView: 方法用来返回一共显示多少个section(多少组)。

2. tableView: numberOfRowsInSection: 方法用来返回相应的section有多少行(传入参数section,传出参数row)。

3 .tableView: cellForRowAtIndexPath: 方法用来返回相应行的一个数据Cell,Cell即为一行的内容,传入参数indexPath可以唯一确定当前的位置。

调用顺序:先调用1知道组数section,然后调用2一共section次知道每一组有多少数据,最后调用section*对应的组的行数次的3得到每一行应该显示的内容。

Tip:为了分组显示,要将TableView的Style设置成Group类型。

为了协调表格中数据的多样性,一般用模型来存储数据。

设置TableView的头部标题(概括这一组所讲的内容)和尾部标题(用来详细描述这一组怎么用):

使用方法:

- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section{
//根据section返回相应的头标题
} - (NSString *)tableView:(UITableView *)tableView titleForFooterInSection:(NSInteger)section{
//根据section返回相应的尾标题
}

(十二)UITableView的基本使用的更多相关文章

  1. 前端开发中SEO的十二条总结

    一. 合理使用title, description, keywords二. 合理使用h1 - h6, h1标签的权重很高, 注意使用频率三. 列表代码使用ul, 重要文字使用strong标签四. 图片 ...

  2. CRL快速开发框架系列教程十二(MongoDB支持)

    本系列目录 CRL快速开发框架系列教程一(Code First数据表不需再关心) CRL快速开发框架系列教程二(基于Lambda表达式查询) CRL快速开发框架系列教程三(更新数据) CRL快速开发框 ...

  3. 我的MYSQL学习心得(十二) 触发器

    我的MYSQL学习心得(十二) 触发器 我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(四) 数 ...

  4. Web 前端开发精华文章推荐(jQuery、HTML5、CSS3)【系列十二】

    2012年12月12日,[<Web 前端开发人员和设计师必读文章>系列十二]和大家见面了.梦想天空博客关注 前端开发 技术,分享各种增强网站用户体验的 jQuery 插件,展示前沿的 HT ...

  5. 第十二章Fundamental Data Types 基本数据类型

    目录: 12.1 数值概论 12.2整数 12.3浮点数 12.4 字符和字符串 12.5布尔变量 12.6枚举类型 12.7具名常量 12.8数组 12.9创建你自己的类型 12.1   数值概论 ...

  6. [分享] IT天空的二十二条军规

    Una 发表于 2014-9-19 20:25:06 https://www.itsk.com/thread-335975-1-1.html IT天空的二十二条军规 第一条.你不是什么都会,也不是什么 ...

  7. Bootstrap <基础三十二>模态框(Modal)插件

    模态框(Modal)是覆盖在父窗体上的子窗体.通常,目的是显示来自一个单独的源的内容,可以在不离开父窗体的情况下有一些互动.子窗体可提供信息.交互等. 如果您想要单独引用该插件的功能,那么您需要引用  ...

  8. Bootstrap <基础二十二>超大屏幕(Jumbotron)

    Bootstrap 支持的另一个特性,超大屏幕(Jumbotron).顾名思义该组件可以增加标题的大小,并为登陆页面内容添加更多的外边距(margin).使用超大屏幕(Jumbotron)的步骤如下: ...

  9. Bootstrap <基础十二>下拉菜单(Dropdowns)

    Bootstrap 下拉菜单.下拉菜单是可切换的,是以列表格式显示链接的上下文菜单.这可以通过与 下拉菜单(Dropdown) JavaScript 插件 的互动来实现. 如需使用下列菜单,只需要在 ...

  10. AngularJs的UI组件ui-Bootstrap分享(十二)——Rating

    Rating是一个用于打分或排名的控件.看一个最简单的例子: <!DOCTYPE html> <html ng-app="ui.bootstrap.demo" x ...

随机推荐

  1. 为什么要用 Docker

    作为一种新兴的虚拟化方式,Docker 跟传统的虚拟化方式相比具有众多的优势. 首先,Docker 容器的启动可以在秒级实现,这相比传统的虚拟机方式要快得多. 其次,Docker 对系统资源的利用率很 ...

  2. Scroll Segmented Control(Swift)

    今天用了一个github上一个比较好用的Segmented Control但是发现不是我要效果,我需要支持scrollView.当栏目数量超过一屏幕,需要能够滑动. 由于联系作者没有回复,我就自己在其 ...

  3. android 小项目------黑名单app

    周一的时候,同事在群里问到了黑名单功能,他说网上都没有找到一个完整的,记得谁说过一句,当都没有做过的时候,这就是机会.这几天公司事比较多,只能晚上抽时间写写,直到今天才完整的做出来. 具体效果的话大家 ...

  4. R语言:安装及使用

    http://blog.csdn.net/pipisorry/article/details/53640638 ubuntu下安装 sudo apt-get install -y r-base源码安装 ...

  5. PGM:基于模板的表示

    http://blog.csdn.net/pipisorry/article/details/52537660 引言 概率图模型(无论贝叶斯网或马尔可夫网)在一个固定的随机变量集X上具体指定了一个联合 ...

  6. iOS开发基础之开发证书的说明和发布

    1.首先通过钥匙串访问--证书助理--从证书颁发机构请求证书--填写证书信息(邮箱,常用名称,存储到磁盘)--存储为(自定义名称.certSigningReuqest,简称CSR文件,只是为了提交到苹 ...

  7. 23 服务的启动Demo2

    MainActivity.java package com.qf.day23_service_demo2; import android.app.Activity; import android.co ...

  8. EBS采购(PO)模块常用表

     select * from po_requisition_headers_all 请求头 select * from po_requisition_lines_all 请求行 select * ...

  9. Android旋转动画

    Android旋转动画 核心方法 public void startAnimation(Animation animation) 执行动画,参数可以是各种动画的对象,Animation的多态,也可以是 ...

  10. 【Unity Shader实战】卡通风格的Shader(二)

    写在前面 本系列其他文章: 卡通风格的Shader(一) 好久没写博客了,一定是因为课程作业比较多,一定不是因为我懒,恩恩. 三个月以前,在一篇讲卡通风格的Shader的最后,我们说到在Surface ...