我有一个屏幕,其中我有一个UIPageViewController
在每一页我都有一个UIButton
。问题是当用户按下按钮时,按钮的按下/突出显示状态延迟了大约半秒。两个状态图像都设置为使用情节提要的按钮。
这发生在模拟器和真实设备上。
现在从我的谷歌搜索中,我遇到了一些描述这个问题的帖子,例如:
UIButton 延迟状态更改
和:
UI按钮仅在长按时被点击(突出显示)?
在所有帖子中,解决方案是使用delaysContentTouches
设置并将其设置为false
.
问题是:我没有找到如何在UIPageViewController
的情况下应用它。 大多数帖子都在UIScrollView
或UITableView
中谈论这个问题。
所以,问题是:如果发生UIPageViewController
,我将如何做到这一点?我没有看到UIPageViewController
有这个设置,也没有找到任何其他方法来应用它。
找到了解决此问题的方法,这段代码将修复突出显示的按钮单击延迟,但会阻止寻呼机在按钮本身上滚动。
public override func viewDidAppear(_ animated: Bool) {
for view in self.view.subviews {
if view is UIScrollView {
(view as? UIScrollView)!.delaysContentTouches = false
}
}
}
我没有在UIPageViewController
中找到它的原因是UIPageViewController
不是我预期的UIScrollView
子类,而是将其作为子视图包含。