Ios 屏幕底部UIButton的着陆延迟
我在聊天屏幕的底部有一个Ios 屏幕底部UIButton的着陆延迟,ios,swift,uibutton,uikit,Ios,Swift,Uibutton,Uikit,我在聊天屏幕的底部有一个ui按钮。我使用触地检测用户是否开始按住按钮并开始录音(标准messenger应用程序功能) 问题是,当按钮位于屏幕底部时,从我开始按住按钮的那一刻起到着陆点火的那一刻,有1s的延迟 当键盘显示并且底部在屏幕上向上移动时,根本没有延迟 我发现了一个类似的问题,但按钮不在表视图或滚动视图中 覆盖按钮的touchsbegind(toucks:Set,with event:UIEvent?方法并仅打印事件表明它也具有相同的延迟 这让我认为延迟与屏幕底部的按钮位置有关。您是否尝试
ui按钮
。我使用触地
检测用户是否开始按住按钮并开始录音(标准messenger应用程序功能)
问题是,当按钮位于屏幕底部时,从我开始按住按钮的那一刻起到着陆
点火的那一刻,有1s的延迟
当键盘显示并且底部在屏幕上向上移动时,根本没有延迟
我发现了一个类似的问题,但按钮不在表视图或滚动视图中
覆盖按钮的touchsbegind(toucks:Set,with event:UIEvent?
方法并仅打印事件表明它也具有相同的延迟
这让我认为延迟与屏幕底部的按钮位置有关。您是否尝试从故事板上取消选中表格视图/滚动视图的延迟触屏?结果表明,如果用户实际执行系统手势,延迟是由iOS等待引起的(就像从屏幕底部滑动)而不是点击按钮 如果我覆盖根视图控制器上的
var preferredscreenedgesderferringsystem手势:uirectredge
,并将其设置为[.bottom,.right]
则没有延迟。我不知道为什么[.bottom]
还不够,我想还有其他iOS手势可以从屏幕右边缘滑动,按钮位于右下角
总是只设置[.bottom,.right]
会产生一些负面影响,用户必须刷卡2次才能执行iOS从底部刷卡的手势
关键似乎是仅当用户要按下录制按钮时才设置它,如在
func点(内部点:CGPoint,带有event:UIEvent?)->Bool
然后在用户释放按钮时将其设置回原位。如问题中所述,按钮不在任何表视图或滚动视图中按钮的超级视图是什么?VCS的根视图您是否尝试使用touchesBegind/Move/Ended/Cancelled方法?您可以检查目标视图是否为录制按钮。是的,touchesBegind(Touchs:Set,with event:UIEvent?)按钮的
具有相同的行为