我有一个看起来像这样的视图层次结构。
buttonsView< - 带有1-3个小按钮的UIView MKMapView< - 最底层视图
当我的buttonsView显示时,如果用户没有触摸任何按钮,我仍然希望用户能够滚动MKMapView。
我尝试了userInteractionEnabled = NO
的不同组合,但没有任何帮助。
答案 0 :(得分:1)
您有几种方法可以解决这个问题:
带有三个小按钮的顶视图可以小得多,因此只覆盖三个小按钮所需的区域。这样,顶视图将不会覆盖地图视图,您仍然可以滚动它。
实施您自己的hitTest
/ pointInside
功能,让顶层视图决定是否要捕捉活动(当您点按其中一个按钮时)或者它决定将事件进一步发送到响应者链(当用户点击其他任何内容时)。有关可能的方法,请参阅此处:Allowing interaction with a UIView under another UIView
答案 1 :(得分:0)
前面的视图会进行所有交互。无论它是否透明。您应该将手势传递到底部的MKMapView。 另一种方法是使用按钮调整视图大小以覆盖整个MKMapView,但仅覆盖带按钮的部分。这样,用户只能在没有按钮的区域滚动。