iOS基础——通过案例学知识之UITableView


对于UITableView的知识点特别多,因为它是iOS用得最多控件之一,我会尽我最大努力和语言的组织,将所有知识点介绍到位,下面是要实现的效果图

这里写图片描述

吐槽

与Android对比,可以说跟ListView的实现几乎一样,跟RecyclerView一模一样
Android写起来似乎比iOS复杂一点,因为iOS大部分都被封装好了,这一点iOS做得好
对于iOS的方法的命名只能说又长又臭
知识点包括

UITableView的UITableViewDataSource
UITableView的UITableViewDelegate
UITableView的cell的重用
1、准备数据源(plist)

2、布局文件

这里写图片描述

分析plist数据的格式,然后创建对应的对象模型,并提供相应的初始化方法,这是mvc中经典的一个步骤

特别注意:@property中属性不可以使用weak属性,否则在UITableView复用机制中会被回收,导致画面显示不出来
在m文件中实现初始化方法,方法中实现字典转换为对象

1、声明委托代理,声明属性

要想UITableView有数据,那么就必须通过它的委托代理方法才能显示UITableView中的数据

2、实现属性的转换

毫无疑问是通过懒加载将plist的内容转为模型存进我们声明的可变数组中

3、交付委托

4、实现代理的方法

通过实现UITableViewDataSource代理的方法,来显示数据,类似于ListView的Adapter

① UITableView的显示有两种方式,在storyboard中可以设置

1.plain:数据平铺显示,中间没有空隙,数组的头标题有悬浮效果

2.group:数据分组显示,中间留有空隙

这里写图片描述

② UITableViewDataSource的委托方法,程序会按以下顺序执行

numberOfSectionsInTableView:数据中有呈多少组展示(可选实现,默认返回1组)
numberOfRowsInSection:数据中每组有多少行(必须实现,否则会报错)
cellForRowAtIndexPath:数据中每行的内容(必须实现,否则会报错)
③ UITableViewCell的四种样式

1.UITableViewCellStyleDefault

2.UITableViewCellStyleValue1

这里写图片描述

3.UITableViewCellStyleValue2

这里写图片描述

4.UITableViewCellStyleSubtitle

④ cell.accessoryType的五种样式,用得不多就不解释了

UITableViewCellAccessoryNone
UITableViewCellAccessoryDisclosureIndicator
UITableViewCellAccessoryDetailDisclosureButton
UITableViewCellAccessoryCheckmark
UITableViewCellAccessoryDetailButton
5、UITableViewDataSource其他代理方法

这两个代理方法会在group样式上展示得比较清晰

6、cell的重用

cell与ListView的Item中是一样的,它也是要对Item进行重用的
这里的重用主要是用到重用标识符
在cellForRowAtIndexPath方法中改一下cell的创建代码即可
7、tableView的属性介绍

_tableView.separatorColor:分割线颜色
_tableView.separatorInset:分割线缩进
_tableView.separatorStyle:分割线类型
_tableView.allowsMultipleSelection:允许选项多选
_tableView.tableHeaderView:可以添加一个在头部的View
_tableView.tableFooterView:可以添加一个在底部的View
_tableView.sectionHeaderHeight:每个组的间隔
8、实现cell的点击事件

① 声明委托与交付委托

cell的点击事件是在UITableViewDelegate的实现方法

② 实现点击事件函数

9、实现cell的编辑模式和cell的增加插入

cell的编辑模式和cell的增加插入也是在UITableViewDelegate的实现方法

① UITableViewDelegate的委托方法

canEditRowAtIndexPath:允许哪一行开启编辑模式
commitEditingStyle:点击事件的回调,同时开启侧滑删除
editingStyleForRowAtIndexPath:决定哪一行的编辑模式
② indexPath属性

indexPath.row:行的索引
indexPath.section:组的索引
③ 编辑模式动画,大家看名字应该都可以猜得出

UITableViewRowAnimationFade
UITableViewRowAnimationRight
UITableViewRowAnimationLeft
UITableViewRowAnimationTop
UITableViewRowAnimationBottom
UITableViewRowAnimationNone
UITableViewRowAnimationMiddle
UITableViewRowAnimationAutomatic
④ 最后只要开启编辑模式

源码下载


这是对上面博客缺少的内容进行补充,实现的效果如图

知识点

UITableViewController
侧边字母导航栏
1、准备数据源(plist)

2、布局文件

这次采用UITableViewController作为启动界面,其好处是自动将UITableViewDelegate和UITableViewDataSource自动绑定到对应的m文件中

不过需要注意的是m文件中必须实现UITableViewController

跟上篇文章一样,分析Model中拥有的属性,这里包括有两个Model,Cars和Car,分别代表多辆车的集合和单辆车的数据

Cars的h文件

Cars的m文件

和Car有点区别,就是在初始化的时候,将Car的NSArray和转换成模型

Car的h文件

Car的m文件

1、属性声明

2、plist数据的加载

3、由于UITableView是继承UITableViewController,所以可以直接使用其代理方法

源码下载


这个案例很简单,不用代码,直接使用storyboard就可以了,一般使用在固定的列表中使用

知识点

静态Cell
1、使用UITableViewController,设置内容为静态Cell,而且设置有三节内容

这里写图片描述

2、设置其style为分组

这里写图片描述

3、你会看到左手边会出现三节TableView

这里写图片描述

4、选中section可以设置TableViewCell的数量,设置头部标题

这里写图片描述

5、选中TableViewCell,设置其style,照片,新托福口语文字,accessory

这里写图片描述

6、大功告成


这个案例使用自定义Cell来完成,可以说是大多数UITableView的首选

知识点

自定义Cell
这里写图片描述

这里直接使用UITableView和UITableViewCell直接自定义我们的Cell

创建类继承自UITableViewCell

记得填写UITableViewCell的类和Cell重用标识符

这里写图片描述

这里写图片描述

根据plist文件有的属性创建我们的h文件

m文件,固定的写法

1、Cell的处理

在Cell的类文件中提供一个数据Model,并通过Model绑定我们的View的值

2、UITableView的处理

创建数组属性,读取plist文件内容,重写set方法

UITableViewDataSource委托的实现方法

这样就好了,其实很简单

源码下载

学习UITableView应该掌握以下的知识点

字典转模型
双模型转换
决定组数
决定行数
决定每行内容
Header标题
Header自定义View
Footer标题
Footer自定义View
插入/删除操作
点击/非点击操作
Cell重用
自定义Cell


文章来源:https://blog.csdn.net/qq_30379689/article/details/60586387

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值