禁用在屏幕特定区域的 uipageviewcontroller 上滑动
disabling swiping on uipageviewcontroller for certain area of screen
我有一个 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
}
它根本没有打印出 "gesture should begin"...我将 class 设置为 UIGestureRecognizerDelegate
我做错了什么?我猜我将错误的手势识别器设置为代表,如何才能将正确的手势识别器设置为代表?
这样的东西行得通吗?
func gestureRecognizer(gestureRecognizer: UIGestureRecognizer, shouldReceiveTouch touch: UITouch) -> Bool {
if(touch.view == <your tableView>){
return false
}else{
return true
}
}
您可能还需要测试它是哪个 gestureRecognizer(来自 pageView 的那个还是来自 tableView 的那个)。
我有一个 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
}
它根本没有打印出 "gesture should begin"...我将 class 设置为 UIGestureRecognizerDelegate
我做错了什么?我猜我将错误的手势识别器设置为代表,如何才能将正确的手势识别器设置为代表?
这样的东西行得通吗?
func gestureRecognizer(gestureRecognizer: UIGestureRecognizer, shouldReceiveTouch touch: UITouch) -> Bool {
if(touch.view == <your tableView>){
return false
}else{
return true
}
}
您可能还需要测试它是哪个 gestureRecognizer(来自 pageView 的那个还是来自 tableView 的那个)。