Text是SwiftUI世界中最基础的控件,使用也非常简单。但是越是简单,越是基础的控件,我们就应该全面掌握。例如,当我们遇到长文本时该如何优雅处理呢。
解决思路
对于超长文本可以有两种解决方案
- 超长部分直接省略
- 自动缩小字体然后换行
超过长度直接省略
import SwiftUI
struct ContentView: View {
var name:String
var body: some View {
ZStack{
Circle()
.frame(width:100,height:100)
.foregroundColor(.blue)
.shadow(radius: 10)
Text(self.name)
.frame(width:80,height:40)
.foregroundColor(.white)
//.scaledToFit()
.lineLimit(nil)
}
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView(name: "苏轼是北宋中期文坛领袖")
}
}
自动缩小
import SwiftUI
struct ContentView: View {
var name:String
var body: some View {
ZStack{
Circle()
.frame(width:100,height:100)
.foregroundColor(.blue)
.shadow(radius: 10)
Text(self.name)
.frame(width:80,height:40)
.foregroundColor(.white)
//.scaledToFit()
//.lineLimit(nil)
.minimumScaleFactor(0.3)
}
}
}
未实现的需求
- 换行后文本如何居中
- 字体如何优雅的适应frame的大小
朋友们有什么好的解决的方案,欢迎留言交流
更多SwiftUI教程和代码关注专栏
- 请关注我的专栏icloudend, SwiftUI教程与源码
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。