![](/img/trans.png)
[英]How to pass a touch event from a UIView to the UIView(s) beneath it?
[英]How can a covered UIControl or UIView know about a touch event that ended above it?
我有一个UIControl(或无关紧要的UIView),这由另一个UIControl覆盖。 另一个UIControl对触摸事件反应良好。 但是,从用户的角度来看,底层的UIControl还需要了解触摸以及它是否真正在其上。 覆盖的UIControl是部分透明的。
我如何在底层UIControl上获得这种联系?
我认为您可以通过几种方式解决此问题...
您可以将touch事件传递给另一个控件...尽管我不认为将上方视图移到另一个视图上会起作用? 您可能需要试验。
比较简单的方法可能只是查看下部矩形是否包含接触点:
-(void)touchesEnded:(NSSet *)touches withEvent:(UIEvent*)event {
UITouch *touch = [[event allTouches] anyObject];
CGPoint touchLocation = [touch locationInView:self];
if (CGRectContainsPoint(lowerView.frame, touchLocation)) {
<doyourthing>
}
我不会马上就想起,但您可能需要在两个视图之间转换视图坐标?!? 或者您可以使用-(BOOL)pointInside:(CGPoint)point withEvent:(UIEvent *)event来询问视图本身
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.