ios - 暂时禁用手势识别器滑动功能

标签 ios uiview uigesturerecognizer

我有一个带有多个按钮和图像的 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/

相关文章:

ios - 如何手动调用RxSwift注册的手势识别器?

ios - 使 UIView 前景透明

ios - 如何使我的自定义手势识别器类实例同时工作?

objective-c - 在滑动之前允许延迟

ios - 交互式 View Controller 转换 - 奇怪的行为(卡在转换中)

ios - 如何指定特定的 UIScrollView 滚动到顶部

ios - 环球银行金融电信协会 : UITableView passing all cell's data(TextField & Label) to UIViewController

ios - 根据与 swift 中的键关联的元组的值对字典键进行排序

ios - 从没有状态栏的全屏 View 到有状态栏的普通 View 的错误翻转转换

ios - View 设计未显示在 ViewController 中