不透明的UIView不允许我在后面滚动UIView



我有一个视图层次结构,看起来像这样。

buttonsView <——带有1-3个小按钮的UIViewMKMapView <——最底部视图

当我的buttonsView显示时,我仍然希望用户能够滚动MKMapView,如果用户没有触摸任何按钮。

我尝试了不同的userInteractionEnabled = NO组合,但没有任何帮助。

有几种方法可以解决这个问题:

  • 带有三个小按钮的顶视图可以小得多,因此它只覆盖了三个小按钮所需的区域。这样,俯视图不会覆盖地图视图,你仍然可以滚动它。

  • 实现你自己的hitTest/pointInside函数,让顶视图决定是否要捕获事件(当你点击它的一个按钮时),或者它决定将事件发送到响应链(当用户点击其他任何东西时)。允许在另一个UIView下与一个UIView交互

前面的视图接受所有的交互。不管它是否透明。你应该把手势传递给底部的MKMapView。另一种方法是调整带有按钮的视图的大小,使其不覆盖整个MKMapView,而只覆盖带有按钮的部分。这样,用户就只能在没有按钮的区域滚动了。

相关内容

最新更新