如何让我的 UIView 在 SwiftUI 中根据其内容正确调整大小?
How do I get my UIView to correctly size for its content in SwiftUI?
我想在我的 SwiftUI 视图中使用 Yonat Sharon
编写的很棒的 MultiSegmentPicker。
https://github.com/yonat/MultiSelectSegmentedControl
但是,我并不完全理解 UIViewRepresentable View 和我的 SwiftUI View 之间的交互。如何让宿主视图控制器将其高度缩小到分段控件的大小?
这是演示页面的调试器视图 - 注意顶部栏周围的蓝色区域:
演示代码并没有提供很多关于问题的见解,它只是对 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" 等的栏紧贴屏幕底部。相反,主机控制器保留所有 space...
是否需要使用几何reader来解决这个问题,缩小高度。或者我是否必须在 UIViewRepresentable 视图中调整某些内容?
对桥接 UIKit 和 SwiftUI 的任何见解总是很感激...
这是一个简单的解决方案吗?
这些都没有解决我的问题:
UIViewRepresentable content not updating
How do I make SwiftUI UIViewRepresentable view hug its content?
How do I size a UITextView to its content?
现在无法测试,仅凭想法,按如下固定大小试试
MultiSegmentPicker(
selectedSegmentIndexes: $selectedSegmentIndexes,
items: ["First", "Second", "Third", "Done"]
).fixedSize() // << here !!
我想在我的 SwiftUI 视图中使用 Yonat Sharon
编写的很棒的 MultiSegmentPicker。
https://github.com/yonat/MultiSelectSegmentedControl
但是,我并不完全理解 UIViewRepresentable View 和我的 SwiftUI View 之间的交互。如何让宿主视图控制器将其高度缩小到分段控件的大小?
这是演示页面的调试器视图 - 注意顶部栏周围的蓝色区域:
演示代码并没有提供很多关于问题的见解,它只是对 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" 等的栏紧贴屏幕底部。相反,主机控制器保留所有 space...
是否需要使用几何reader来解决这个问题,缩小高度。或者我是否必须在 UIViewRepresentable 视图中调整某些内容?
对桥接 UIKit 和 SwiftUI 的任何见解总是很感激... 这是一个简单的解决方案吗?
这些都没有解决我的问题: UIViewRepresentable content not updating
How do I make SwiftUI UIViewRepresentable view hug its content?
How do I size a UITextView to its content?
现在无法测试,仅凭想法,按如下固定大小试试
MultiSegmentPicker(
selectedSegmentIndexes: $selectedSegmentIndexes,
items: ["First", "Second", "Third", "Done"]
).fixedSize() // << here !!