gpt4 book ai didi

ios - 对于 alertController : what is the sourceView of a selected segment in a UISegmentedControl

转载 作者:行者123 更新时间:2023-11-28 05:50:20 25 4
gpt4 key购买 nike

我有一个包含 4 个段的 UISegmentedControl。其中一些片段会在用户选择时实例化 UIAlertController

UIAlertController 上,您可以设置 popoverPresentationController?.sourceView 让警报 Controller 指向原始 View ,这将在 iPad 等较大的设备上使用.

我尝试传递有效的 UISegmentedControl,但 anchor 始终位于分段控件的左上角 - 而不是所选的段。

我想使用 UISegmentedControl 的实际段作为 sourceView,但是 UISegmentedControl 上没有包含这些段的数组。

有一个包含 View 数组的 subview 属性。该数字对应于段数,所以我虽然找到了解决方案。但是如果我分配:

alertController.popoverPresentationController?.sourceView = segmentedControl.subviews[2]

...对于第 3 段,它有时有效,有时无效。看起来这个数组并不总是按照屏幕上的段顺序排列。

如何找到要使用的正确 subview ?

最佳答案

我找到了一个解决方案:

alertController.popoverPresentationController?.sourceView = (segmentedControl.subviews.sorted { $0.frame.origin.x < $1.frame.origin.x })[segmentedControl.selectedSegmentIndex]

这将首先按照 x 坐标的顺序对 View 进行排序。然后我可以使用 segmentedControl.selectedSegmentIndex 作为索引。

关于ios - 对于 alertController : what is the sourceView of a selected segment in a UISegmentedControl,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53188322/

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