【问题标题】: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 为我解释。我很困惑。干杯!

标签: ios uiimageview uigesturerecognizer uipangesturerecognizer


【解决方案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。是一样的。
猜你喜欢
  • 2011-08-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-08-12
  • 2020-09-11
  • 2015-08-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多