八点钟学院:由“虎扑体育app”的这个效果,来谈谈UITableView编辑模式
作为一名jr,虎扑体育几乎是我每天都得打开的app,赛季期间自不必说,长草期也喜欢看看八卦和交易动态。
那么,我们来看看这款app里的这个效果图:
八点钟学院:谈谈UITableView编辑模式
这是一个非常标准的ios UITableView的编辑模式,有添加、删除、移动三种编辑效果。
当你新建UITableView时,是不会有编辑模式的,要实现它的编辑模式,需要按下面的步骤:
1、开启tableView的编辑效果
设置UITableView的editing属性为YES,或调用setEditing: animated方法,后者有动画
2、实现 - (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath 方法
这个方法是确定是否哪些行是有编辑效果。如果在1的步骤里设置了editing属性为YES,那么即使2这个方法不实现,默认是全部都有编辑效果的。
3、实现 - (UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath 方法
这个方法是决定每一行的编辑类型是什么,即:UITableViewCellEditingStyle,是一个枚举
分别是代表没有编辑类型、删除类型(cell左边是绿色圆,中间红色线)、添加类型(cell左边是蓝色圆,中间是加号)。值得注意的是移动的编辑类型是不在这个方法里表现的,要想有移动效果,得看下面的方法
4、实现 - (BOOL)tableView:(UITableView *)tableView canMoveRowAtIndexPath:(NSIndexPath *)indexPath 方法
这个方法是确定哪些行是有移动模式的。如果不实现这个方法,如果你代码里有moveRowAtIndexPath这个方法,那么每一行也是有移动模式的(这个方法里面可以不写任何代码,仅仅只要有这个方法在,就会让每一行都有移动模式)
- (void)tableView:(UITableView *)tableView moveRowAtIndexPath:(NSIndexPath *)sourceIndexPath toIndexPath:(NSIndexPath *)destinationIndexPath
5、实现 - (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath 方法
前面4个步骤已经让我们每一行按照自己的约定有了编辑模式,那么要实现编辑效果:删除数据,增加数据就得看5这个方法了,这里我贴一下我的代码,实现虎扑体育的删除和插入效果:
#pragma mark - tableView编辑模式:删除和插入
- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath
{
NSLog(@"commitEditingStyle");
if (editingStyle == UITableViewCellEditingStyleDelete) {
//容易忽视的问题:删除和插入 分别操作完,textArr和allTextArr数据操作别合在一起
//否则程序会崩溃
//删除操作
NSUInteger index = indexPath.row;
NSString *text = [textArr objectAtIndex:index];
[textArr removeObjectAtIndex:index];
[tableView deleteRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationFade];
//插入操作
[allTextArr addObject:text];
NSIndexPath *insertToIndexPath = [NSIndexPath indexPathForRow:allTextArr.count-1 inSection:1];
[tableView insertRowsAtIndexPaths:@[insertToIndexPath] withRowAnimation:UITableViewRowAnimationBottom];
} else if (editingStyle == UITableViewCellEditingStyleInsert) {
//插入操作
NSUInteger index = indexPath.row;
NSString *text = [allTextArr objectAtIndex:index];
[textArr addObject:text];
NSIndexPath *insertToIndexPath = [NSIndexPath indexPathForRow:textArr.count-1 inSection:0];
[tableView insertRowsAtIndexPaths:@[insertToIndexPath] withRowAnimation:UITableViewRowAnimationFade];
//删除操作
[allTextArr removeObjectAtIndex:index];
[tableView deleteRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationFade];
}
}
到这里,其实整个编辑模式基本讲完了,但是!大家会发现你自己实现的代码,上面section0的那些行不仅仅能在section0里移动,还能够移动到下面section1里,这不符合我们想要的效果!这种时候该怎么办呢?!
- (NSIndexPath *)tableView:(UITableView *)tableView targetIndexPathForMoveFromRowAtIndexPath:(NSIndexPath *)sourceIndexPath toProposedIndexPath:(NSIndexPath *)proposedDestinationIndexPath
秘密就在上面这个方法,大家可以看看效果
八点钟学院:谈谈UITableView编辑模式
了解更多IOS高级开发知识请关注腾讯课堂八点钟学院
https://ke.qq.com/course/171725
官方网址:http://www.8pmedu.com/
八点钟学院:由“虎扑体育app”的这个效果,来谈谈UITableView编辑模式相关推荐
- TLint for 虎扑体育 基于Dagger2+RxJava+Retrofit开发,采用MVP模式
TLint 类别: 完整源码 打分: ★★★★★ 更新: 2016-05-12 09:54 大小: 6976 kb 开发环境: Android Studio 浏览: 484 次 下载: 83 次 项目 ...
- 北乔峰南慕容:懂球帝与虎扑体育的“武功”较量
2018年可谓是体育社区平台的春天,因为世界杯.亚运会等大型体育赛事的举办,让人们对体育的关注度达到了顶峰.从赛事开始前.进行中.到结束,人们对体育的热情不仅仅表现在赛场上,在可对体育进行话题交流和分 ...
- 关于虎扑体育的创新点
关于虎扑体育: 虎扑体育成立于2004年,是中国资源优势及营销实力的专业体育营销公司. 虎扑体育旗下拥有中国的体育网站--虎扑体育网.经过十年的发展与积累,虎扑已成为集体育营销策划.赛事营销与管理.活 ...
- TLint for 虎扑体育应用源码项目
虎扑非官方客户端TLint 全新Material Design设计,简洁美观 支持论坛全部操作,浏览帖子.点亮.回复.引用.收藏等 多项个性化设置(不同主题,不同阅读模式) TLint For 虎扑体 ...
- 发自虎扑体育android客户端,阿德问题(转自虎扑)
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 开头引用一个刺密的一段在新闻区的评论"呆子退役后,马刺也好,刺密也好都失去了二十年以来一直撑起球队的精神领袖,再加上秃子也行将退役,傻帕状态也日 ...
- Anroid(仿虎扑体育)ListView中数据按照时间\日期分组(分类)
最近笔者在做一个项目.需求里面有一个效果是一个ListView:按带日期标题(格式:yyyy-MM-dd)分类,item为(格式:HH:mm:ss),并且在滑动过程中,当日期标题滑动到顶部的时候,进行 ...
- Scrapy框架入门之爬取虎扑体育的新闻标题
下图是2018年5月25日火箭和勇士西决G5时,火箭赢下天王山之战,虎扑NBA的首页. 我这次做的爬虫项目的目的就是:爬取图片中红色边框里的文字,然后txt文本的方式保存到本地. 接下来我介绍一下我完 ...
- 【Python爬虫系列教程 11-100】Python网络爬虫实战:最简单的Pandas 中的read_html一行代码爬取网页表格型数据,就可以爬取虎扑体育NBA球员信息
文章目录 爬取对象 分析 实现代码 爬取对象 虎扑是一个认真而有趣的社区,每天有众多JRs在虎扑分享自己对篮球.足球.游戏电竞.运动装备.影视.汽车.数码.情感等一切人和事的见解,热闹.真实.有温度. ...
- 虎扑体育客户端zen源码学习笔记
SOURCE ================== ZenLogin登录 ZenLoginActivity 动态注册Boardcast protected void onResume() {super ...
最新文章
- 【c语言】蓝桥杯算法提高 征税程序
- 百度大脑发挥AI“头雁效应” 王海峰:在AI时代共同推动社会智能化升级
- Azure Remoteapp 使用指南
- 对 SAP UI5 一无所知的新手,从哪些材料开始学习比较好?
- 这是一个沙雕题III(坑题)
- BZOJ #3166. [Heoi2013]Alo(可持久化trie树+set)
- 分布式搜索elasticsearch集群监控工具bigdesk
- 构建高并发高可用的电商平台架构实践 转载
- 创建django项目,8月版本
- 纯新手DSP编程--5.21--DSP/BIOS使用
- 多线程总结之旅(9):线程同步之事件
- 信息系统集成将成为IT行业的主流的主要原因
- linux上的MySQL默认端口,linux下mysql 查看默认端口号与修改端口号方法
- javascript前端导出Excel简单写法
- GoBatch简介 —— 一款基于go语言的企业级批处理框架(Golang下的SpringBatch)
- ac ap方案 华为_华为AC AP无线配置方法
- 计量经济学计算机第1章习题,计量经济学第1章习题.pdf
- C#对Java--微软的反击
- 小白入门之HTML--第四章 CSS样式深入
- 计算机网络教室财产登记表,固定资产清查登记表-资产管理.DOC