在屏幕的某个区域禁用uipageviewcontroller上的滑动

时间:2015-05-22 01:06:58

标签: ios objective-c uitableview swift uipageviewcontroller

我有一个uipageviewcontroller,页面上有一个区域,其中有一个uitableview。我希望用户只能浏览该uitableview之外的页面。

我似乎无法找到这些手势识别器隐藏的位置。我将它们设置为像这样的代表:

self.view.gestureRecognizers = self.pageViewController?.gestureRecognizers
for gesture in self.view.gestureRecognizers!{
            // get the good one, i discover there are 2
            if(gesture is UIPanGestureRecognizer)
            {
                println("ispan")
                // replace delegate by yours (Do not forget to implement the gesture protocol)
                (gesture as! UIPanGestureRecognizer).delegate = self
            }
        }

我在日志中看到ispan,所以它似乎找到了一些uipangesturerecognizer但是当我覆盖这样的函数时:

func gestureRecognizerShouldBegin(gestureRecognizer: UIGestureRecognizer) -> Bool {
    println("gesture should begin")
    var point = gestureRecognizer.locationInView(self.view)
    return true
}

它没有打印出来"手势应该开始"根本......我把班级设为UIGestureRecognizerDelegate我做错了什么?我猜测我将错误的手势识别器设置为代表如何将正确的手势识别器设置为代表?

1 个答案:

答案 0 :(得分:2)

这样的事可以吗?

func gestureRecognizer(gestureRecognizer: UIGestureRecognizer, shouldReceiveTouch touch: UITouch) -> Bool {

    if(touch.view == <your tableView>){
        return false
    }else{
        return true
    }
} 

您可能还需要测试它是哪个gestureRecognizer(来自pageView的那个或来自tableView的那个)。