2016-08-29 65 views
1

我有一个uiview multipe按钮和图像。我拖动那张卡就像一个tinder界面。暂时禁用手势识别器滑动功能

我希望能够阻止用户在某些点拖动卡,并允许他人在其他地方。

我试过禁用它,但我这样做的方式禁用了与整个视图的所有用户交互停止滑动,但也阻止用户按下我不想做的按钮(我只想阻止他们滑动) 。

这是我如何启动刷卡:

let gestureBack = UIPanGestureRecognizer(target: self, action: Selector("wasDraggedBack:")) 
backview.addGestureRecognizer(gestureBack) 

这是怎么了我错误的尝试停止刷卡:

self.backview.userInteractionEnabled = true 

如何我刚刚从又不影响所有刷卡停止视图视图内的其他按钮等。

感谢

+0

首先尝试gestureBAck.enabled = NO,如果它不工作,那么你需要设置你的wasDraggedBAck方法的标志,并且仅当该标志被设置进行YES 。 –

+0

请参阅http://stackoverflow.com/questions/5991250/disable-gesture-recognizer –

回答

1

根据该文档,所有UIGestureRecognizer类对象有一个enabled属性。

它是什么:

禁用一个手势识别,因此不会收到触摸。默认值是true。如果在手势识别器当前正在识别手势时将此属性更改为false,则手势识别器将转换为取消状态。

3

yes该有一个委托方法对UIGestureRecognizerü可以设置委托方法像下面

let gestureBack = UIPanGestureRecognizer(target: self, action: Selector("wasDraggedBack:")) 
backview.addGestureRecognizer(gestureBack) 
//set the delegate 
gestureBack.delegate? = self 

,并确认委托像,

class ViewController: UIViewController,UIGestureRecognizerDelegate { 

} 

最后使用这个代理触发动作的方法,

func gestureRecognizerShouldBegin(gestureRecognizer: UIGestureRecognizer) -> Bool { 
    //condition to recognise the gesture 
    return true; //or false 
} 
1

你可以做这样的事情,

gestureBack.enabled = false 
相关问题