ios - 将触摸转发到 UIPageViewController

标签 ios swift uipageviewcontroller

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

我该怎么做?

最佳答案

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

所以你的“UIView,覆盖了一半的屏幕”可以像 NoTouchHandlerView 这样子类化。然后这个view就不会消耗touches了。然后它将传递给它下面的 View 。

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/

相关文章:

IOS:通过PageViewController显示WebView

ios - 在当前应用中添加 UIPageViewController

javascript - Ionic 选项卡不会转到下一页

iOS 应用程序在使用 Firebase 进行身份验证时崩溃

ios - 信标小变量全局

arrays - 在 Swift 4 中初始化 double 数组

swift - 带按钮的 View Controller 之间的转换(UIPageViewController 项)

ios - 为覆盖 ViewController 方法提供默认实现,但前提是 Controller 符合协议(protocol)

ios - Swift函数参数命名

swift - 在 Swift 中使用 Firebase 查询最新条目