0

我有一个MKMapView mainMap正方形的比例,它的宽度等于 iPhone 的屏幕宽度。我使用以下方法使其成为圆形:

mainMap.layer.cornerRadius = mainMap.frame.width/2
mainMap.clipsToBounds = true

现在我有一个UIButton在下面的mapView,它只是部分可见。

这一切都很好,但是当我点击按钮时,点击被 mapView 的不可见部分捕获。

是否需要额外的步骤才能使 mapView 的不可见部分不干扰用户界面?

4

1 回答 1

1

您需要覆盖背景视图 ( hitTest:withEvent:) 上的命中测试。你会打电话super,大多数时候你会返回它返回的任何东西。但是如果它返回地图视图,您将根据地图视图的框架检查点(第一个参数)并确定它是否在圆圈内 - 这很容易计算,因为 CGPath 有一个CGPathContainsPoint函数。如果是,则返回super给您的地图视图。但如果不是,则返回nil。触摸现在将“穿透”到它背后的任何东西,如果那是按钮,则按钮将接收点击。

于 2015-10-25T15:45:47.577 回答