gpt4 book ai didi

swift - Clipstobounds(ed) 元素不可见部分下方元素的可访问性

转载 作者:行者123 更新时间:2023-11-30 10:10:29 26 4
gpt4 key购买 nike

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

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

现在我有一个 UIButton ,位于 mapView 下方,并且它仅部分可见。

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

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

最佳答案

您需要覆盖背景 View 上的 HitTest ( hitTest:withEvent: )。您可以调用super ,大多数时候你会返回它返回的任何内容。但如果它返回 map View ,您将根据 map View 的框架检查该点(第一个参数)并确定它是否在圆内 - 这很容易计算,因为 CGPath 有一个 CGPathContainsPoint功能。如果是,则返回super给了你 map View 。但如果不是,则返回 nil 。现在,触摸将“落入”其后面的任何位置,如果那是按钮,则该按钮将收到点击。

关于swift - Clipstobounds(ed) 元素不可见部分下方元素的可访问性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33223597/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com