首页 > 解决方案 > SwiftUI:防止长词断字

问题描述

如何防止长词断字,例如调整字体大小以适应宽度?

要求:外层灰框必须具有相同的固定尺寸。应该是 2 行。

var body: some View {
VStack {
    Spacer()

    Image(systemName: "square")

                .resizable()
                .frame(width: 50, height: 50)
        
        Spacer()
        Text("Acknowledgement for the rest")
            .allowsTightening(true)
            .minimumScaleFactor(0.01)
            .lineLimit(2)
            .multilineTextAlignment(.center)
        
    }
    .padding()
    .frame(width: 140, height: 150, alignment: .center)
    .background(
        ZStack {
            RoundedRectangle(cornerRadius: 10)
                .foregroundColor(Color(hex: "f9f9f9"))
        }
    )

}

在此处输入图像描述

标签: swiftxcodeswiftui

解决方案


使用fixedSize 修饰符


在此处输入图像描述


import SwiftUI

struct ContentView: View {
    
    var body: some View {
        VStack {
            Spacer()
            
            Image(systemName: "square")
                .resizable()
                .frame(width: 50, height: 50)
            
            Spacer()
            Text("Acknowledgement for the rest")
                .fixedSize()    // <<: Here
                .allowsTightening(true)
                .minimumScaleFactor(0.01)
                .lineLimit(nil)
                .multilineTextAlignment(.center)
            
        }
        .padding()
        .frame(height: 150)
        .background(
            ZStack {
                RoundedRectangle(cornerRadius: 10)
                    .foregroundColor(Color.blue)
            }
        )
    }
    
}

推荐阅读