SwiftUI基礎之Text長度過長該如何處理

Text是SwiftUI世界中最基礎的控件,使用也很是簡單。可是越是簡單,越是基礎的控件,咱們就應該全面掌握。例如,當咱們遇到長文本時該如何優雅處理呢。

解決思路

對於超長文本能夠有兩種解決方案ide

  • 超長部分直接省略
  • 自動縮小字體而後換行

超過長度直接省略

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教程和代碼關注專欄

https://www.jianshu.com/c/7b3...spa

相關文章
相關標籤/搜索