从 UIImageView 传递触摸到 superview
Posted
技术标签:
【中文标题】从 UIImageView 传递触摸到 superview【英文标题】:Passing touches from UIImageView to superview 【发布时间】:2015-02-18 11:09:09 【问题描述】:我有四个UIImageViews
放在一个圆形UIView
上。拖动UIView
旋转视图。但是当我拖动 UIImageView 时,不会发生旋转。 UIImageView 正在吃东西。
我将 UIImageView 子类化并尝试了这个:
- (void) touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
[self.superview touchesMoved:touches withEvent:event];
[super touchesMoved:touches withEvent:event];
这似乎并不能解决问题。我尝试禁用对UIImageView
- [imageView setUserInteraction:NO]
的触摸。那也解决不了问题。我知道有人问过类似的问题。但似乎没有一个能解决我的问题。
谢谢。
【问题讨论】:
你在哪里写视图旋转代码。 父 UIView 内的@Nagarajan 【参考方案1】:尝试在您的UIImageView
s 上将userInteractionEnabled
设置为NO
,这应该可以防止他们使用触摸。
【讨论】:
抱歉,我不知道您所说的“禁用触摸”是什么意思。如果您禁用它们,您的touchesMoved:withEvent:
方法是否仍然被调用?如果是,那么我建议使用UIPanGestureRecognizer
来检测拖动。
是的。 touchesMoved 仍然被调用。所以我在超级视图上放了一个平移手势?有没有其他办法?
我刚刚尝试了将userInteractionEnabled
设置为NO
的解决方案,对我来说它有效,这意味着只有超级视图的touchesMoved:withEvent:
被调用(即使我拖动子视图),所以您的设置一定有其他问题
我不确定出了什么问题。一切似乎都很好。
@Anil 也许你在某个地方有另一个子视图?你有没有尝试实现hitTest:withEvent:(UIEvent *)event
?如果你在hitTest
中放一个断点会发生什么,它是否进入断点?以上是关于从 UIImageView 传递触摸到 superview的主要内容,如果未能解决你的问题,请参考以下文章
在作为子视图添加的滚动视图中将触摸事件传递给 uiimageview
防止从 UIImageView 到 superview 的触摸传输