Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 屏幕底部UIButton的着陆延迟_Ios_Swift_Uibutton_Uikit - Fatal编程技术网

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?)按钮的
具有相同的行为