我想使用Yonat Sharon
在我的 SwiftUI 视图中编写的很棒的 MultiSegmentPicker。
https://github.com/yonat/MultiSelectSegmentedControl
但是,我并不完全理解 UIViewRepresentable 视图和我的 SwiftUI 视图之间的交互。如何让主机视图控制器将其高度缩小到分段控件的大小?
演示代码并没有深入了解这个问题,它只是对 UIViewRepresentable 视图的调用。我在这里将其简化为一个示例:
struct MultiSegmentPickerX: View {
@State private var selectedSegmentIndexes: IndexSet = []
var body: some View {
VStack(alignment: .center) {
Spacer()
MultiSegmentPicker(
selectedSegmentIndexes: $selectedSegmentIndexes,
items: ["First", "Second", "Third", "Done"]
)
}
}
}
请注意,我在控件之前有一个带 Spacer() 的 VStack。
此示例所需的行为是带有“First”、“Second”等的条紧贴屏幕底部。相反,主机控制器保留了所有空间......
我是否需要使用几何阅读器来解决这个问题并缩小高度。还是我必须在 UIViewRepresentable 视图中调整一些东西?
任何关于桥接 UIKit 和 SwiftUI 的见解都会受到赞赏......这是一个简单的解决方案吗?
这些并没有解决我的问题: UIViewRepresentable content not updates