iOS–一个高仿微信左滑确认删除的轮子

本文介绍了如何在iOS应用中实现类似微信的左滑删除功能,包括针对不同iOS版本的解决方案,以及优化后的侧滑菜单逻辑。作者提供了一个经过改造的Demo,演示了滚动时收起侧滑菜单、点击收起、阻尼效果、形变和确认删除按钮等功能。文章还提及了原Demo存在的问题和改进后的内存管理方案。
摘要由CSDN通过智能技术生成

前言

一个需求,要求左滑点击删除后出现二次确认。和微信一样。

image.png

调研结果如下:

  • iOS11之后,可以通过对系统方法进行改造的方式实现。 

  • iOS11之前,系统在点击删除按钮之后会自动对扩展按钮进行回收。无法进行那样的改造。

于是决定自己写一个

 

由于16年的微信与现在的交互差异太大,所以进行了大量改造,只保留了其对于侧滑菜单的创建以及滑动判定的逻辑基础。

对其中的bug以及功能实现方式进行优化调整,基本实现了现在微信的左滑逻辑功能。


实际效果

伸手党福利,先看效果不满意直接右上角就好了。

由于我很懒…所以demo的主体结构基本没改,侧滑菜单创建的逻辑没做太多修改。

Demo在文章最后


具体到主要的代码上

我连demo的文件名都懒得改(当然Cell的名字我改了,毕竟我做了三天才做完),就更别提界面了…

 

  • 新增了一个专门的侧滑容器View

原Demo就是一个VIew,上面循环的创建按钮使用。

由于新版微信需要很多复杂的交互效果(形变,反弹,确认删除等等)

我新建了一个KSSideslipContainerView的容器View。

可以很方便的进行二次操作

  • 滚动时收起侧滑菜单

原Demo中侧滑展示时,是滑动交互式关闭的。

这里我通过NSProxy对tableView的滑动代理进行拦截

-(void)scrollViewWillBeginDragging:(UIScrollView *)scrollView {      if (self.target.sideslip) {        [self.target hiddenAllSideslip];    }        if ([self.tbDelegate respondsToSelector:@selector(scrollViewWillBeginDragging:)]) {        [self.tbDelegate scrollViewWillBeginDragging:sc
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值