如何使UIView在SwiftUI中的内容大小正确?
我想在我的SwiftUI视图中使用由Yonat Sharon编写的很棒的多段选择器 但是,我并不完全理解UIViewRepresentable视图和我的SwiftUI视图之间的交互。如何使主体视图控制器将其高度缩小到分段控件的大小 这是演示页面的调试器视图-请注意顶部栏周围的蓝色区域: 演示代码并没有深入了解这个问题,它只是对UIViewRepresentable视图的调用。我将其简化为一个示例:如何使UIView在SwiftUI中的内容大小正确?,swiftui,uiviewrepresentable,geometryreader,Swiftui,Uiviewrepresentable,Geometryreader,我想在我的SwiftUI视图中使用由Yonat Sharon编写的很棒的多段选择器 但是,我并不完全理解UIViewRepresentable视图和我的SwiftUI视图之间的交互。如何使主体视图控制器将其高度缩小到分段控件的大小 这是演示页面的调试器视图-请注意顶部栏周围的蓝色区域: 演示代码并没有深入了解这个问题,它只是对UIViewRepresentable视图的调用。我将其简化为一个示例: struct MultiSegmentPickerX: View { @Sta
struct MultiSegmentPickerX: View {
@State private var selectedSegmentIndexes: IndexSet = []
var body: some View {
VStack(alignment: .center) {
Spacer()
MultiSegmentPicker(
selectedSegmentIndexes: $selectedSegmentIndexes,
items: ["First", "Second", "Third", "Done"]
)
}
}
}
注意,在控件之前有一个带间隔符()的VStack
本示例所需的行为是,带有“第一”、“第二”等的条紧贴屏幕底部。相反,主机控制器保留所有空间
我是否需要使用几何体读取器来解决此问题并缩小高度。或者我必须调整UIViewRepresentable视图中的某些内容吗
任何关于桥接UIKit和SwiftUI的见解,我们都将不胜感激。。。
这是一个容易解决的问题吗
这些并没有解决我的问题:
现在无法测试它,仅凭想法,请尝试以下固定大小
MultiSegmentPicker(
selectedSegmentIndexes: $selectedSegmentIndexes,
items: ["First", "Second", "Third", "Done"]
).fixedSize() // << here !!
多段选择器(
selectedSegmentIndexes:$selectedSegmentIndexes,
项目:[“第一”、“第二”、“第三”、“完成”]
).fixedSize()//对于我来说,如果不修复原始UIKit控件的intrinsicContentSize
,这将无法工作。我在版本2.3.3中推出了修复程序。