ios - 禁用在屏幕特定区域的 uipageviewcontroller 上滑动

标签 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 我做错了什么?我猜我将错误的手势识别器设置为代表,如何将正确的手势识别器设置为代表?

最佳答案

这样的东西可以工作吗?

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

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

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

关于ios - 禁用在屏幕特定区域的 uipageviewcontroller 上滑动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30386813/

相关文章:

ios - 使用WKWebView获取嵌入网页的视频url

ios - 如何比较iOS上的手势类型?

ios - 在 UITableView 中显示一个表中的中型数据集

ios - 你怎么能让 uilabel 环绕图像(如图所示)

ios - 将 NSImage 从 CMYK 转换为 RGB

ios - iCarousel 显示点击 View

objective-c - 根据用户输入创建文本字段

ios - 获取登录用户的 Facebook 好友列表

ios - UITableView 中的固定行

ios - 使用 UISearchController 搜索 TableView