我有一个包含三个元素的HStack,例如:

HStack(alignment: .firstTextBaseline) {
    Text(title.uppercased())
        .lineLimit(1)
    Rectangle()
        .frame(height: 1)
        .foregroundColor(Color(.tertiaryLabel))
    Text(value)
        .lineLimit(1)
}

第一个文本元素被截断,取而代之的是矩形,这对我来说似乎很奇怪,因为矩形似乎应该根据需要进行压缩,以容纳周围的文本.

Demo

我发现在我的文本对象中添加.fixedSize()可以解决这个问题,但这是最佳/正确的解决方案吗?

推荐答案

我猜你在找layoutPriority个修饰语,比如

HStack(alignment: .firstTextBaseline) {
    Text(title.uppercased())
        .lineLimit(1)
        .layoutPriority(1)        // << here !!
    Rectangle()
        .frame(height: 1)
        .foregroundColor(Color(.tertiaryLabel))
    Text(value)
        .lineLimit(1)
}

Swift相关问答推荐

在Swift中initt()完成后运行一个函数

@ MainActor + Combine不一致的编译器错误

SwiftUI:为什么@State在子视图中持续存在?

了解SWIFT中的命名VS位置函数调用

使用MKLocalSearch获取坐标

如何将新事例添加到枚举中?

如何在macOS中延迟退出应用程序的退出操作?

Swift 扩展:通过方法重载增强现有类

如何绑定环境变量ios17

减小SF符号的边框宽度

在 Swift 中将异步任务包装到 DispatchWorkItem 中以使其可取消?

在 init(from decoder: Decoder) 方法中访问原始 JSON 数据

SwiftUI:当 currentIndex 值更改时,数组中的第 n 个视图是否已换出?

Swift - 订阅视图之外的绑定值

如何在 ZStack 中单独下移卡片?

符合协议 - 错误?

RxSwift:share() 替代方案,保证upstream 的单一订阅

VStack SwiftUI 中的动态内容高度

Swift 2 中的新 @convention(c):我该如何使用它?

如何快速显示数组的所有元素?