如何在UIPageViewController页面中修复突出显示的状态UIButton延迟?

时间:2018-03-31 22:47:45

标签: ios swift uibutton delay uipageviewcontroller

我有一个屏幕,其中每个页面都有UIPageViewController我有一个UIButton。问题在于当用户按下按钮时按钮的按下/突出显示状态延迟大约半秒。两个状态图像都使用故事板设置为按钮。

这发生在模拟器和真实设备上。

现在,通过Google搜索,我发现了一些描述此问题的帖子,例如:

UIButton delayed state change

UIbutton only looks clicked (highlighted) on longPress?

在所有帖子中,解决方案是使用delaysContentTouches设置并将其设置为false

问题是:我没有找到如何在UIPageViewController的情况下应用此问题。大多数帖子都会在UIScrollViewUITableView中讨论此问题。

所以,问题是:如果是UIPageViewController,我该怎么做?我没有看到UIPageViewController有此设置,也没有找到任何其他方法来应用它。

1 个答案:

答案 0 :(得分:1)

找到解决此问题的方法,这段代码将修复按钮突出显示的点击延迟但会阻止寻呼机滚动按钮本身。

public override func viewDidAppear(_ animated: Bool) {
    for view in self.view.subviews {
        if view is UIScrollView {
            (view as? UIScrollView)!.delaysContentTouches = false
        }
    }
}

我在UIPageViewController中找不到的原因是UIPageViewController不是我预期的UIScrollView的子类,但它包含它作为子视图。