overlay 上的 userInteractionEnabled 阻止了 UIView 下方的 touchEvents
userInteractionEnabled on overlay blocks touchEvents on below UIViews
在一个 iOS 应用程序中,我有一个包含 UIScrollView 的 UIView 和一个具有一定透明度的叠加 UIImageView。
叠加视图位于 UIScrollView 之上,并将 userInteractionEnabled 设置为 YES。
我可以在叠加层上正确接收触摸事件,但滚动视图不再接收它们。
当 userInteractionEnabled si 在叠加层上设置为 NO 时,我可以在 UIScrollView 中正确平移,但显然叠加层不再获得触摸事件。
如何能够将触摸事件从叠加层传递到滚动视图,以便我仍然可以滚动或平移滚动视图?
我已经从叠加层中尝试了这个,但它不起作用:
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
{
<...>
[myParent.myScrollView touchesMoved:touches withEvent:event];
}
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
<...>
[myParent.myScrollView touchesBegan:touches withEvent:event];
}
创建一个自定义的UIViewclass,实现该方法并设置为IB中的overlay view
func point(inside point: CGPoint,
with event: UIEvent?) -> Bool {
return true
}
在一个 iOS 应用程序中,我有一个包含 UIScrollView 的 UIView 和一个具有一定透明度的叠加 UIImageView。
叠加视图位于 UIScrollView 之上,并将 userInteractionEnabled 设置为 YES。
我可以在叠加层上正确接收触摸事件,但滚动视图不再接收它们。
当 userInteractionEnabled si 在叠加层上设置为 NO 时,我可以在 UIScrollView 中正确平移,但显然叠加层不再获得触摸事件。
如何能够将触摸事件从叠加层传递到滚动视图,以便我仍然可以滚动或平移滚动视图?
我已经从叠加层中尝试了这个,但它不起作用:
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
{
<...>
[myParent.myScrollView touchesMoved:touches withEvent:event];
}
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
<...>
[myParent.myScrollView touchesBegan:touches withEvent:event];
}
创建一个自定义的UIViewclass,实现该方法并设置为IB中的overlay view
func point(inside point: CGPoint,
with event: UIEvent?) -> Bool {
return true
}