我有一个带有多个按钮和图像的 uiview。我拖动那张卡片有点像火种界面。
我希望能够阻止用户在某些点拖动卡片并允许他们在其他点拖动。
我尝试禁用它,但我这样做的方式禁用了所有用户与整个 View 的交互,停止了滑动,但也阻止了用户点击我不想做的按钮(我只想阻止他们滑动)。
这就是我发起滑动的方式:
let gestureBack = UIPanGestureRecognizer(target: self, action: Selector("wasDraggedBack:"))
backview.addGestureRecognizer(gestureBack)
这就是我试图停止滑动的错误方式:
self.backview.userInteractionEnabled = true
我怎样才能阻止 View 滑动而不影响 View 内的所有其他按钮等。
谢谢
最佳答案
是的,UIGestureRecognizer
有一个委托(delegate)方法,你可以像下面这样设置委托(delegate)方法
let gestureBack = UIPanGestureRecognizer(target: self, action: Selector("wasDraggedBack:"))
backview.addGestureRecognizer(gestureBack)
//set the delegate
gestureBack.delegate? = self
并确认委托(delegate),
class ViewController: UIViewController,UIGestureRecognizerDelegate {
}
最后使用这个委托(delegate)方法来触发 Action ,
func gestureRecognizerShouldBegin(gestureRecognizer: UIGestureRecognizer) -> Bool {
//condition to recognise the gesture
return true; //or false
}
关于ios - 暂时禁用手势识别器滑动功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39207789/