在SwiftUI中对齐视图的高度

时间:2020-04-23 06:30:46

标签: swiftui

我有一个SwiftUI视图,它是两个视图的HStack: 1.一个简单的Text视图,它就像一个标签,并且总是一行 2.一个自定义UIKit视图,它是UITextView,具有很多自定义格式

我的愿望是限制UITextView的高度以匹配Text视图的高度(单行,高度取决于系统字体,等等)。我已经尝试了许多方法来解决此问题,但似乎找不到有效的方法。 GeometryReader似乎仅将父级属性传递给子级,但不能解决“同级”问题。

有什么想法或见识吗?

1 个答案:

答案 0 :(得分:1)

这里是可能的布局演示。经过Xcode 11.4 / iSO 13.4的测试

demo

注意:添加.border.padding只是为了演示和更好的可见性。重要的地方标有注释。 MultilineTextViewUITextView

的简单表示形式
struct DemoFixedToLabel: View {
    var body: some View {
        HStack {
            Text("Some Text").font(Font.system(.title))
                .padding()
                .border(Color.blue)
                .fixedSize()             // << here !!
            MultilineTextView(text: .constant("My desire is to restrict the height of the UITextView to match the height of the Text"))
                .border(Color.green)
        }
        .padding()
        .border(Color.red)
        .fixedSize(horizontal: false, vertical: true)    // << here !!
    }
}