公司最近提出一个需求是侧滑删除需求,很简单,但是给的图是这样的
![](https://img.haomeiwen.com/i2252368/70002de3bd46d746.png)
看到这张图肯定是需要自定义的,因为之前没有自定义侧滑删除按钮过,所以就百度了一番,有许多,但是实际用起来却有很多问题。
结果一
![](https://img.haomeiwen.com/i2252368/b18856f16a0f8adb.png)
这种方法只能适用于iOS 11以前的版本,而且有个bug,就是左滑菜单收起来的时候,背景图片会有闪一下的bug。
结果二
![](https://img.haomeiwen.com/i2252368/3f7a25ace168d60a.png)
这个方法解决了系统版本问题,解决了左滑菜单收起来的时候,背景图片会闪的bug,但是还是有个bug,就是iOS 11以上版本,在一个cell左滑菜单没有收起来时,新左滑的cell没有了想要效果。这是因为iOS11的左滑选项的视图层级有了较大改变。最显著的改变是左滑删除是UITableViewCell的子视图变成了UITableView的子视图,所以会出现这个问题。
最终解决
![](https://img.haomeiwen.com/i2252368/bb1b7bb3de4d8d80.png)
![](https://img.haomeiwen.com/i2252368/892bc707aaeed5f2.png)
![](https://img.haomeiwen.com/i2252368/eaa17209f70bedbe.png)
这里设置图片,但是依然给出标题“删除”是因为在iOS11以下版本,title给空的话左滑删除按钮会很窄,subView.subviews[0] 获取按钮时可以拿UIButton接收,但是设置button图片时,iOS11又有bug,所以我选择拿UIView接收,然后添加图片或者自定义的界面。
代码可以着重参考这个,自己进行改动UITableView左滑删除自定义(支持ios11) - 简书
网友评论