我有一个包含UIPageViewController的视图的容器视图。这是在UIViewController内部,并占据了整个屏幕。在容器视图的顶部,我有一个UIView,覆盖屏幕的一半,其中包含一个按钮和一些文本。我想将触摸从此UIView转发到UIPageViewController。这样一来,即使用户在UIPageViewController上滑动,UIView仍然可以左右滑动。我还希望按钮能够被按下,因此不能仅在UIView上将isUserInteractionEnabled设置为false。

我怎样才能做到这一点?

最佳答案

hitTest是确定谁应该使用触摸/手势的方法。

因此,您的“UIView,覆盖屏幕的一半”可以像NoTouchHandlerView这样的子类。然后,该视图将不会消耗任何触摸。然后它将传递到其下的视图。

class NoTouchHandlerView: UIView
{
    override func hitTest(_ point: CGPoint, with event: UIEvent?) -> UIView?
    {
        if let hitTestView = super.hitTest(point, with: event), hitTestView !== self {
            return hitTestView
        }else {
            return nil
        }
    }
}

关于ios - 转发触摸到UIPageViewController,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44131765/

10-14 22:12
查看更多