iOS如何自定义支持长按操作的按钮
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了iOS如何自定义支持长按操作的按钮相关的知识,希望对你有一定的参考价值。
参考技术A 一般情况下按钮都是只能一次一次的按,那如果像添加商品那种可以长按的又该怎么做呢。一步一步来,如果我们当按钮按下的时候我们处理按钮按下的消息可不可以呢,来我们看一下UIControlEvents.touchDown会不会一直触发:
结果如下图:
就只打印了一次,很显然这是不行的。那我们再试一试其它的方法。
那touchDown只能触发一次,那我们给Button添加长按手势会怎样呢?
参考
结果如下图:
哎,可以了啊,终于搞定了😆,但是仔细观察一下控制台的打印,长按手势的触发并不均匀。这导致了什么呢,如果你加商品的时候,我按了下去,一下就加了5,6件,也可能加了2,3件,这样体验不好啊。看来添加长按手势也是不行的。
那我们又想要多次触发又想要时间均匀,那我们给button加上个timer,当按钮按下的时候我们就开启,当手离开的时候我们就停止不就行了么,说干就干。
结果如下:
Good!结果很漂亮,每隔1秒触发,间隔很均匀,自己也可手动调整触发的时间间隔。
(ps:至于按钮的话就自己封装了)
我自己封装了一个基于RxSwift的长按按钮 LongPressButton ,欢迎star
iOS开发:UINavigationController自定义返回按钮,系统导航支持侧滑返回
当你使用系统导航想拦截用户返回事件时,无法拦截侧滑返回
当你自定义导航或者隐藏导航后,iOS系统导航的侧滑返回就失效了,那么用户体验将大打折扣
网上大部分自定义导航的解决方案是:给页面添加全局的轻扫手势,那么又区别于原生系统,改变了用户的操作习惯
在开发过程中,你是否也遇到了这样的困惑呢?希望这篇文章可以解决你的困惑!
自定义返回按钮
-
自定义一个导航的基类,继承于
UINavigationController
@interface FQBaseNavigationController : UINavigationController @end
-
遵循导航代理协议
@interface FQBaseNavigationController ()<UINavigationControllerDelegate
以上是关于iOS如何自定义支持长按操作的按钮的主要内容,如果未能解决你的问题,请参考以下文章
iOS开发:UINavigationController自定义返回按钮,系统导航支持侧滑返回