作为一名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编辑模式相关推荐

  1. TLint for 虎扑体育 基于Dagger2+RxJava+Retrofit开发,采用MVP模式

    TLint 类别: 完整源码 打分: ★★★★★ 更新: 2016-05-12 09:54 大小: 6976 kb 开发环境: Android Studio 浏览: 484 次 下载: 83 次 项目 ...

  2. 北乔峰南慕容:懂球帝与虎扑体育的“武功”较量

    2018年可谓是体育社区平台的春天,因为世界杯.亚运会等大型体育赛事的举办,让人们对体育的关注度达到了顶峰.从赛事开始前.进行中.到结束,人们对体育的热情不仅仅表现在赛场上,在可对体育进行话题交流和分 ...

  3. 关于虎扑体育的创新点

    关于虎扑体育: 虎扑体育成立于2004年,是中国资源优势及营销实力的专业体育营销公司. 虎扑体育旗下拥有中国的体育网站--虎扑体育网.经过十年的发展与积累,虎扑已成为集体育营销策划.赛事营销与管理.活 ...

  4. TLint for 虎扑体育应用源码项目

    虎扑非官方客户端TLint 全新Material Design设计,简洁美观 支持论坛全部操作,浏览帖子.点亮.回复.引用.收藏等 多项个性化设置(不同主题,不同阅读模式) TLint For 虎扑体 ...

  5. 发自虎扑体育android客户端,阿德问题(转自虎扑)

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 开头引用一个刺密的一段在新闻区的评论"呆子退役后,马刺也好,刺密也好都失去了二十年以来一直撑起球队的精神领袖,再加上秃子也行将退役,傻帕状态也日 ...

  6. Anroid(仿虎扑体育)ListView中数据按照时间\日期分组(分类)

    最近笔者在做一个项目.需求里面有一个效果是一个ListView:按带日期标题(格式:yyyy-MM-dd)分类,item为(格式:HH:mm:ss),并且在滑动过程中,当日期标题滑动到顶部的时候,进行 ...

  7. Scrapy框架入门之爬取虎扑体育的新闻标题

    下图是2018年5月25日火箭和勇士西决G5时,火箭赢下天王山之战,虎扑NBA的首页. 我这次做的爬虫项目的目的就是:爬取图片中红色边框里的文字,然后txt文本的方式保存到本地. 接下来我介绍一下我完 ...

  8. 【Python爬虫系列教程 11-100】Python网络爬虫实战:最简单的Pandas 中的read_html一行代码爬取网页表格型数据,就可以爬取虎扑体育NBA球员信息

    文章目录 爬取对象 分析 实现代码 爬取对象 虎扑是一个认真而有趣的社区,每天有众多JRs在虎扑分享自己对篮球.足球.游戏电竞.运动装备.影视.汽车.数码.情感等一切人和事的见解,热闹.真实.有温度. ...

  9. 虎扑体育客户端zen源码学习笔记

    SOURCE ================== ZenLogin登录 ZenLoginActivity 动态注册Boardcast protected void onResume() {super ...

最新文章

  1. 【c语言】蓝桥杯算法提高 征税程序
  2. 百度大脑发挥AI“头雁效应” 王海峰:在AI时代共同推动社会智能化升级
  3. Azure Remoteapp 使用指南
  4. 对 SAP UI5 一无所知的新手,从哪些材料开始学习比较好?
  5. 这是一个沙雕题III(坑题)
  6. BZOJ #3166. [Heoi2013]Alo(可持久化trie树+set)
  7. 分布式搜索elasticsearch集群监控工具bigdesk
  8. 构建高并发高可用的电商平台架构实践 转载
  9. 创建django项目,8月版本
  10. 纯新手DSP编程--5.21--DSP/BIOS使用
  11. 多线程总结之旅(9):线程同步之事件
  12. 信息系统集成将成为IT行业的主流的主要原因
  13. linux上的MySQL默认端口,linux下mysql 查看默认端口号与修改端口号方法
  14. javascript前端导出Excel简单写法
  15. GoBatch简介 —— 一款基于go语言的企业级批处理框架(Golang下的SpringBatch)
  16. ac ap方案 华为_华为AC AP无线配置方法
  17. 计量经济学计算机第1章习题,计量经济学第1章习题.pdf
  18. C#对Java--微软的反击
  19. 小白入门之HTML--第四章 CSS样式深入
  20. 计算机网络教室财产登记表,固定资产清查登记表-资产管理.DOC

热门文章

  1. [转]【读书笔记】《俞军产品方法论》——产品经理的枕边书
  2. Apple可以改善下一代Apple Watch的4种心率变异性数据的方法
  3. PHP接口interface详解
  4. 交叉编译openblas库
  5. 蝉知门户系统迁移到SAE平台-对蝉知2.5版本部分功能的限制
  6. 校园 学校IPTV电视系统解决方案
  7. 【MySQL】深入理解MySQL索引原理(MySQL专栏启动)
  8. 联想小新java,联想小新笔记本怎么样 小新笔记本介绍【图文】
  9. CATALINA_OPTS和 JAVA_OPTS区别
  10. 机器学习sklearn-PCA降维算法