有没有办法根据要显示的文字长度自动调整字体大小?例如,通过设置帧大小?能否自动缩小字体大小,使显示字体的宽度保持不变?
var body: some View {
VStack {
ZStack {
GeometryReader { g in
ZStack {
ScrollView(.vertical, showsIndicators: true, content: {
VStack {
ZStack {
VStack {
Image("cat")
.resizable()
.aspectRatio(contentMode: .fill)
.frame(width:g.size.width, height:g.size.height/4*3)
.clipped(antialiased:true)
.shadow(radius:25, x:0, y:0)
VStack (){
HStack {
VStack (alignment: .leading) {
HStack {
Text("XXXX").font(.title)
.font(.system(size:35)).foregroundColor(.black).shadow(radius: 5)
})
Spacer()
}
HStack {
Text("xxxxxxxxxxxxx xxxxxxxxxxx xxxxxxxxxx ").font(.title2) // very long text here
Spacer()
}
}
}
}
.padding()
.frame(width:g.size.width, height:g.size.height/4*1, alignment: .top)
}
}.frame(width: g.size.width, height: g.size.height, alignment: .top)
}
.edgesIgnoringSafeArea(.all)
}
}
}
Run Code Online (Sandbox Code Playgroud)
正如您在我的代码中看到的,那里有一个很长的文本。文字在大多数设备上都可以完美显示,但 iPod Touch 会因为太长而无法显示,最后会显示为“xxxxxxxx xxxxxxxx xxxx ...”、“...”。有什么方法可以自动跳转到下一行,或者缩小字体,这样末尾就不会出现“...”?
struct ContentView: View {
var body: some View {
VStack{
Text("Test string")
.minimumScaleFactor(0.1) // <-- Here
.frame(width: 15, height: 15)
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4899 次 |
| 最近记录: |