SwiftUI:minimumScaleFactor 没有均匀地应用于堆栈元素

Lar*_*ars 5 ios swift swiftui

我有两个文本的水平堆栈(第二个以蓝色突出显示)。它非常适合 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)
    }
}
Run Code Online (Sandbox Code Playgroud)

以下是它在较小设备上的显示方式: 小设备显示 以及它如何在更大的设备上显示: 大型设备显示

Mic*_*mon 0


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)
    }
}

Run Code Online (Sandbox Code Playgroud)

+是为 2 个文本定义的,但不是为 2 个视图定义的,并且 aslineLimit()返回需要对连接的文本进行分组的视图。我将组合的绳子加长以迫使其收缩。

  • 谢谢,但这实际上不起作用。我尝试了一些事情但没有运气。不确定这是一个错误还是我只是错过了一些东西...... (3认同)