覆盖上的userInteractionEnabled阻止UIViews下面的touchEvents

时间:2018-05-06 10:00:49

标签: ios uiview uiscrollview touches setuserinteractionenabled

在iOS应用程序中,我有一个包含UIScrollView的UIView,以及具有一定透明度的叠加UIImageView。 叠加视图位于UIScrollView的顶部,并且userInteractionEnabled设置为YES 我可以在叠加层上正确接收触摸事件,但是滚动视图不再获取它们。

当userInteractionEnabled在叠加层上设置为NO时,我可以在UIScrollView中正确平移,但显然叠加层不再获得触摸事件。

 如何将触摸事件从叠加层传递到scrollview,这样我仍然可以滚动或平移scrollView?

我已经从叠加层尝试了这个,但它不起作用:

- (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];
}

1 个答案:

答案 0 :(得分:1)

创建自定义UIView类,实现此方法并将其设置为IB

中的叠加视图
func point(inside point: CGPoint, 
  with event: UIEvent?) -> Bool {
    return true
 }