文档章节

Swift UITableView 使用的简单介绍

Bonjourss
 Bonjourss
发布于 2016/06/30 15:52
字数 758
阅读 70
收藏 0

使用Swift故事板实现UITableView方式有两种

第一种

第一步:在对象库中拖出View Controller

第二步:添加TableView控件然后添加TableViewCell控件

树形结构如图所示:

第三步:新建一个继承UIViewController的Controller文件并于故事板中的ViewController关联

第四步:实现UITableView的数据源(dataSource)和代理(delegate)

UITableView需要一个数据源(dataSource)来显示数据,UITableView会向数据源查询一共有多少行数据以及每一行显示什么数据等。没有设置数据源的UITableView只是个空壳。凡是遵守UITableViewDataSource协议的OC对象,都可以是UITableView的数据源。

通常都要为UITableView设置代理对象(delegate),以便在UITableView触发一下事件时做出相应的处理,比如选中了某一行。凡是遵守了UITableViewDelegate协议的OC对象,都可以是UITableView的代理对象。一般会让控制器充当UITableView的dataSource和delegate

 

继承UITableViewDataSource必须实现的两个方法:

//设置tableView的数据行数 return数据源的行数

func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int

//配置tableView 的单元格 return UITableViewCell

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell

 

数据源和代理中有很多方法上边这两个是必须重写的

例如:

=======DataSource中的方法=======

//返回单元格的高

func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat

=======Delegate中的方法=======

//返回有多少个Sections

func numberOfSectionsInTableView(tableView: UITableView) -> Int

// 返回每一个Sections的Ttitle的高度

func tableView(tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat

//设置每一个Section的样子

func tableView(tableView: UITableView, viewForHeaderInSection section: Int) -> UIView?

 

第五步:让故事板中的UITableView在Controller中关联

第六步(容易被忽略也最重要的一步):

在viewDidLoad()方法中实现委托:mainTableView.delegate = self mainTableView.dataSource = self

凡是实现了tableview的代理协议,和数据源协议的类都可以被一个UITableView指定成它的委托,和数据源 ,假如你的用A类实现了上面两个协议(协议中@request 协议方法 都要实现 ),你可以指定.tableView.delegate=(A类所创建的对象) ,只是你的这个类本身就实现了这两个协议,所以 它可以等于self

 

到这简单的UITableView实用就基本完成了

 

第二种(相对第一种简单太多,但是看情景使用,有时候还必须使用第一种方式)

 

直接在故事板中拖出TableViewController,新建一个继承UITableViewController的Controller,并与故事板中的TableViewController关联。

实现下边两个基本方法

//设置tableView的数据行数 return数据源的行数

func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int

//配置tableView 的单元格 return UITableViewCell

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell

 

当我们按着command键点UITableViewController进去看的时候可以发现UITableViewController已经实现了UITableView数据源和协议

 

 

 

 

© 著作权归作者所有

Bonjourss
粉丝 2
博文 37
码字总数 2312
作品 0
虹口
程序员
私信 提问
关于 Swift 使用UITableView

独自看着文档,试探性的用Swift写UITableView,遇到个不是很理解的问题。 class RootViewController: UIViewController, UITableViewDataSource, UITableViewDelegate{ } 根据以往Obj-C的理解...

metRooooo
2014/06/09
4.6K
0
Swift_ uitableview使用自定义cell

uitableview 使用 xib 的自定义cell 新建cell:(假如命名 MyCell) 使用: 向 tableview 注册 nib 全局变量 let cellIdentifier = "myCell" myTableView!.registerNib(UINib(nibName: "MyCel......

metRooooo
2014/07/10
12.7K
0
iOS中的UITableView

UITableView 基本介绍 UITableView有两种风格:UITableViewStylePlain和UITableViewStyleGrouped。这两者操作起来其实并没有本质区别,只是后者按分组样式显示前者按照普通样式显示而已。 在...

Dumplings
2016/05/23
75
0
iOS开发系列--UITableView全面解析

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/jianxin160/article/details/47753205 --UIKit之UITableView 概述 在iOS开发中UITableView可以说是使用最广泛...

KenshinCui
2015/08/18
0
0
关于UITableView你知道多少——UITableView简单解析

转自萧宸宇的博客 UITableView是在iOS开发中,展示大量内容的首选。我个人认为的原因有以下几点: 1.UITableView的展现形式是为移动设备专门设计过的。有较好的人机交互体验。 2.从技术角度来...

浪子艾菲儿
2013/08/07
1K
0

没有更多内容

加载失败,请刷新页面

加载更多

SpringBoot中 集成 redisTemplate 对 Redis 的操作(二)

SpringBoot中 集成 redisTemplate 对 Redis 的操作(二) List 类型的操作 1、 向列表左侧添加数据 Long leftPush = redisTemplate.opsForList().leftPush("name", name); 2、 向列表右......

TcWong
今天
3
0
排序––快速排序(二)

根据排序––快速排序(一)的描述,现准备写一个快速排序的主体框架: 1、首先需要设置一个枢轴元素即setPivot(int i); 2、然后需要与枢轴元素进行比较即int comparePivot(int j); 3、最后...

FAT_mt
昨天
4
0
mysql概览

学习知识,首先要有一个总体的认识。以下为mysql概览 1-架构图 2-Detail csdn |简书 | 头条 | SegmentFault 思否 | 掘金 | 开源中国 |

程序员深夜写bug
昨天
10
0
golang微服务框架go-micro 入门笔记2.2 micro工具之微应用利器micro web

micro web micro 功能非常强大,本文将详细阐述micro web 命令行的功能 阅读本文前你可能需要进行如下知识储备 golang分布式微服务框架go-micro 入门笔记1:搭建go-micro环境, golang微服务框架...

非正式解决方案
昨天
7
0
前端——使用base64编码在页面嵌入图片

因为页面中插入一个图片都要写明图片的路径——相对路径或者绝对路径。而除了具体的网站图片的图片地址,如果是在自己电脑文件夹里的图片,当我们的HTML文件在别人电脑上打开的时候图片则由于...

被毒打的程序猿
昨天
9
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部