ios - 在 View Controller 上启用滑动,但在该 VC 的 View 内禁用

标签 ios uiview uiviewcontroller uigesturerecognizer

我有一个 UIViewController,其中有 2 个 UISwipeGestureRecognizers 处理撤消和重做(向右滑动以撤消,向左滑动以重做)。在此 VC 中,我还有一个 UIView,它正在跟踪触摸开始/移动/结束以更改另一个 UIView 上的颜色。顺便说一句,撤消/重做与颜色变化有关。

我遇到的问题是,当我在颜色更改器 View 中执行触摸事件时,它们有时会被解释为滑动并且正在发生撤消/重做。

如何仅针对相关 UIView 禁用滑动手势,但保留在 VC 的其他区域执行滑动的能力?

最佳答案

使 View Controller 成为手势识别器的委托(delegate),然后实现此委托(delegate)方法:

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch {

    return touch.view != self.mySubviewToExclude;
}

关于ios - 在 View Controller 上启用滑动,但在该 VC 的 View 内禁用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14422080/

相关文章:

ios - 可以超时的推送通知/替代方案

javascript - 在 Meteor Cordova 上设置闪屏延迟

ios - 我可以仅共享我的 URL 并通过 In House Distribution 将应用程序无线下载到设备吗?

ios - 访问当前 View 的父 View - iOS

ios - 自定义 UIVIew layoutSubviews 在设置转换时会导致错误(AutoLayout 要求我调用 super 方法,即使我已经调用了)

ios - UIViewAnimationTransition 翻转 UIImageView

objective-c - Storyboard View Controller 中的透明背景

ios - SSL 固定和证书验证之间的区别

swift - 界面转换后效果如何?

iphone - 当我们执行 presentViewController 时,幕后会发生什么?