我有一个视图层次结构,看起来像这样。
buttonsView <——带有1-3个小按钮的UIViewMKMapView <——最底部视图
当我的buttonsView显示时,我仍然希望用户能够滚动MKMapView,如果用户没有触摸任何按钮。
我尝试了不同的userInteractionEnabled = NO
组合,但没有任何帮助。
有几种方法可以解决这个问题:
-
带有三个小按钮的顶视图可以小得多,因此它只覆盖了三个小按钮所需的区域。这样,俯视图不会覆盖地图视图,你仍然可以滚动它。
-
实现你自己的
hitTest
/pointInside
函数,让顶视图决定是否要捕获事件(当你点击它的一个按钮时),或者它决定将事件发送到响应链(当用户点击其他任何东西时)。允许在另一个UIView下与一个UIView交互
前面的视图接受所有的交互。不管它是否透明。你应该把手势传递给底部的MKMapView。另一种方法是调整带有按钮的视图的大小,使其不覆盖整个MKMapView,而只覆盖带有按钮的部分。这样,用户就只能在没有按钮的区域滚动了。