LoginSignup
3
2

【SwiftUI】省略せずにTextを絶対にn行で収めたい時の必殺技

Posted at

はじめに

アプリを作っているとデザイン的にどうしても1行で収めたい!
とかよくありますよね。

省略させずに全文表示させるために自動でフォントサイズを調整してくれる機能があります。
今回はそれを記事にしようと思います。

実装

import SwiftUI

struct ContentView: View {
    @State private var text = ""
    
    var body: some View {
        VStack(spacing: 50) {
            Text(text)
                .font(.system(size: 30))
+               .lineLimit(1)
+               .minimumScaleFactor(0.1)
            
            TextField("", text: $text)
                .textFieldStyle(.roundedBorder)
        }
        .padding(20)
    }
}

動画

文字数に応じてフォントサイズが小さくなっていきます。
どんなに文字数が多くなっても2行になることはありません。
Simulator Screen Recording - iPhone 14 - 2023-06-03 at 22.51.05.gif

おわり

UIKitでいうadjustsFontSizeToFitWidthかなと思います

3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2