我水平堆叠了两段文字(第二段以蓝色突出显示)。它可以在iPhone XR上很好地使用,但是在较小的设备(例如iPhone X)上,文本不适合。我试图通过使用minimumScaleFactor缩放文本来解决此问题。但是,SwiftUI似乎可以决定要在堆栈中扩展什么。在此示例中,在较小的设备上,它删除了加粗并仅缩小了第一个(非蓝色)元素。蓝色元素保持不变。有什么想法为什么会发生这种情况?如何将两个加粗的文本元素一起缩小?谢谢!
var normalText: String
var highlightedText: String
var body: some View {
HStack() {
Text(normalText)
.font(.largeTitle)
.bold()
.lineLimit(1)
Text(highlightedText)
.font(.largeTitle)
.bold()
.lineLimit(1)
.foregroundColor(.blue)
Spacer()
}
.minimumScaleFactor(0.5)
}
}
答案 0 :(得分:1)
struct ContentView: View {
var normalText: String = "Hello and Welcome to Stack "
var highlightedText: String = "Overflow"
var body: some View {
HStack() {
Group {
Text(normalText).bold() +
Text(highlightedText).bold()
.foregroundColor(.blue)
}
.lineLimit(1).font(.largeTitle)
Spacer()
}
.minimumScaleFactor(0.5)
}
}
+
是为2个文本定义的,但不是为2个视图定义的,并且由于lineLimit()
返回一个视图,需要对加入的文本进行分组。我加长了组合弦以使其收缩。