使用 UIPageViewControllers 滚动整个视图,包括 UIButtons

Using UIPageViewControllers scroll over entire view, including UIButtons

我有一个带有 PageViewController 和 4 个 UIButton 作为子视图的 UIView。 PageViewController 和按钮子视图彼此独立。 (PageViewController 滚动 4 个页面,而 UIButtons 保持不变)

我面临的问题是按钮占用了相当多的空间 space,我想在 UIView 的任何地方使用这个滚动手势,包括带有按钮的区域。

如果用户点击按钮,相应的操作就会发生,但我希望我可以在按钮上开始一个 scroll/swipe 手势并让 PageViewControllers 滚动功能起作用。

我有 tried/searched 几种方法,包括使用 UIScrollView 而不是 PageViewController。任何帮助将不胜感激。提前致谢。 :)

只需添加您自己的手势识别器并观察在 x 方向上从左到右速度更快的手势。

    override func gestureRecognizerShouldBegin(gestureRecognizer: UIGestureRecognizer) -> Bool {

        if (gestureRecognizer.isMemberOfClass(UIPanGestureRecognizer)){
            let point:CGPoint = (gestureRecognizer as UIPanGestureRecognizer).velocityInView(self)
            if (abs(point.x) > abs(point.y)){
                return true
            }
        }
}

处理这里的手势:

func handlePanGestureRecognizer(gesture: UIPanGestureRecognizer){
    let translation:CGPoint = gesture.translationInView(self)
    if(translation.x > 0){
       //its going from left to right...
       //...transition to the previous page
    }else{
       //...transition to the next page
}