情景:一个类似微信语音聊天的功能,在屏幕的底部放一个Button,按下时可以语音说话,松开时将语音发出去
了解:2017之后对UIKit在iOS系统下新增了一些API:
-(UIRectEdge)preferredScreenEdgesDeferringSystemGestures API_AVAILABLE(ios(11.0))API_UNAVAILABLE(watchos, tvos);
该方法表示屏幕边缘的手势动作(Screen Edge Gesture),一般来说都是由系统管理的,在控制器下重写这个方法,可以让自己的手势优先被调用。
解决:在你的UIViewController中重写该方法,添加以下代码即可。
-(UIRectEdge)preferredScreenEdgesDeferringSystemGestures {return UIRectEdgeBottom;}
例外:写的时候确实解决了按钮响应延迟的问题,但新的问题又出现了:点击底部按钮(该按钮当时的宽度是屏幕宽度)的时候点击右边比左边响应要快很多,然后又去查资料
点击左边时候是和手势滑动返回产生了冲突
self.navigationController.interactivePopGestureRecognizer.delaysTouchesBegan=NO;
当前页面设置这个即可解决左右响应不一致的问题。
网友评论