在 iOS 中,为啥拖过 UIImageView 不会结束 PanGestureRecognizer?

Posted

技术标签:

【中文标题】在 iOS 中,为啥拖过 UIImageView 不会结束 PanGestureRecognizer?【英文标题】:In iOS, why does dragging beyond a UIImageView not end a PanGestureRecognizer?在 iOS 中,为什么拖过 UIImageView 不会结束 PanGestureRecognizer? 【发布时间】:2015-03-22 13:33:30 【问题描述】:

我有一个带有 PanGestureRecognizer 的 UIImageView。当我拖到 ImageView 之外时,我想认为平移已结束,但显然 GestureRecognizer 一直在触发,就好像我仍在拖动视图一样。

我猜这与我对视图边界的误解有关。

什么是知道 pan 何时离开它所连接的 UIImageView 的正确方法?

【问题讨论】:

尝试识别 - (CGPoint)locationInView:(UIView*)view。 视图边界用于确定哪个视图接收触摸事件。当视图接收开始事件时,它还会接收其他触摸事件,如移动、取消、结束。无论触摸位置如何变化。如果您希望在超出视图范围时手势失败,您需要自己测试这种情况。 感谢@SolaWing 为我解释。我很困惑。干杯! 【参考方案1】:

奥委会:

CGPoint p = [recognize locationInView:imageView];
bool out = ![imageView pointInside:p withEvent:nil];

斯威夫特:

var p = recognize.locationInView(self.view);
var out = !self.view.pointInside(point, withEvent: nil);

如果输出是 YES。 pan 已经离开了 imageView。

【讨论】:

谢谢@mistyhua 你对 Swift 还好吗?如果你是 Swift 等价物是什么?否则我可以弄清楚。 @Hairgami_Master。是一样的。

以上是关于在 iOS 中,为啥拖过 UIImageView 不会结束 PanGestureRecognizer?的主要内容,如果未能解决你的问题,请参考以下文章

为啥升级到 ios-sdk8 后我的 UIImageView 不会拉伸?

为啥我的 UIImageView 放在故事板上时会模糊?

为啥图像路径中的图像不显示在 UIImageView 中?

为啥显示图像需要 5.5 秒(在 UIImageVIew 中)?

为啥在任何 UIimageView 和 Uiview 上都无法访问圆形滑块

为啥UIImageView拥有UIImage。它是不是违反 MVC 原则?