推广 热搜: page  考试  小红  红书  数据  论文  数据分析  关键词  哪些  搜索 

iOS开发之UI篇(10)—— UITableView

   日期:2025-01-03     移动:https://sicmodule.kub2b.com/mobile/quote/18340.html

版本
Xcode 9.1


从继承关系我们可以知道:UITableView可以滚动,具有view的性质,能响应UI事件等等~

1. UITableView结构:

4. 重用cell

为什么要重用cell?
由于屏幕显示的cell有限,而当数据量大的时候,如果每个数据创建一个Cell,就会占很大内存。
重用cell机制是这样的:创建了屏幕内cell所需的个数+1个屏幕之外的cell,在满足显示效果的前提下尽可能降低消耗内存。
这种机制下默认有一个可变数组NSMutableArray* visiableCells用来保存当前显示的cell;一个可变字典NSMutableDictnery* reusableTableCells用来保存可重复利用的cell(之所以用字典是因为可重用的cell有不止一种样式,我们需要根据它的reuseIdentifier,也就是所谓的重用标示符来查找是否有可重用的该样式的cell)。

如何重用cell?
首先要创建一个有重用标识符reuseIdentifier的cell,这些cell会被保存到重用队列中去。当需要实例化cell的时候,首先根据reuseIdentifier去找对应的cell。
加载cell到重用队列有两种方法:


根据重用标识符reuseIdentifier实例化一个cell:








调用方法setEditing: animated:后,接着来到代理方法:


当点击左边绿色“+”号按钮后,调用此代理方法:


2. 删除

滑动删除
其实,只要你返回UITableViewCellEditingStyleDelete类型,并实现代理方法tableView : commitEditingStyle: forRowAtIndexPath:,然后就可以向左滑动调出删除按钮了。但是这样一来点击添加按钮就不能调出绿色“+”号按钮了,要解决这个问题,需要修改之前的返回类型的代理方法:





  1. 使用系统cell
  2. 自定义cell之纯代码
  3. 自定义cell之XIB
  4. 自定义cell之storyboard

1. 使用系统cell

其实我们上面例子中使用的就是系统cell:通过注册一个UITableViewCell,然后在tableView: cellForRowAtIndexPath:方法里返回一个已经注册到重用队列里的UITableViewCell。


2. 自定义cell之纯代码


我们可以重写一下cell,来验证是否是使用自定义cell。因为cell继承自UIView,因此我们可以加入如下方法:




在tableView: cellForRowAtIndexPath:方法里实例化一个MyXibTableViewCell,并返回:





本文地址:https://sicmodule.kub2b.com/quote/18340.html     企库往 https://sicmodule.kub2b.com/ , 查看更多

特别提示:本信息由相关用户自行提供,真实性未证实,仅供参考。请谨慎采用,风险自负。


0相关评论
相关最新动态
推荐最新动态
点击排行
网站首页  |  关于我们  |  联系方式  |  使用协议  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报  |  鄂ICP备2020018471号