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

时间:2015-01-20 03:56:56

标签: swift scroll uibutton swipe uipageviewcontroller

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

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

如果用户点击按钮,则会发生相应的操作,但我想如果我可以在按钮上启动滚动/滑动手势并使PageViewControllers滚动功能起作用。

我尝试/搜索了几种方法,包括使用UIScrollView而不是PageViewController。任何帮助将不胜感激。提前致谢。 :)

1 个答案:

答案 0 :(得分:0)

只需添加自己的手势识别器,并观察手势,其中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
}