[SwiftUI]セグメントピッカーの文字サイズを変えるには?

SwiftUI

どうも、ちょげ(@chogetarou)です。

SegmentedPickerStyleのPickerの文字サイズを変える方法を紹介します。

スポンサーリンク

方法

インターフェース, インターネット, プログラム, ブラウザ, Www

SegementedPickerの文字サイズを変えるには、UISegmentedControlを使います。

まず、initメソッドやonAppear修飾子などで、「UISegmentedControl.appearance().setTitleTextAttributes()」を呼び出します。

そして、「setTitleTextAttributes」の第1引数に「[.font : UIFont.systemFont(ofSize : サイズ)]」、第2引数「for」に「.nonrmal」を指定します。

//UIFont.systemFontの引数「ofSize」に文字サイズを指定
UISegmentedControl.appearance().setTitleTextAttributes(
    [.font : UIFont.systemFont(ofSize: textSize)], for: .normal
)

UISegmentedControlを使うことで、セグメントのPickerの文字サイズを設定することができます。

選択中のテキストの文字サイズを変える場合には、setTitleTextAtrributesの引数「for」に「.selected」を指定します。

使用例

struct ContentView: View {
    
    @State private var selectedIndex = 0
    
    init() {
        UISegmentedControl.appearance().setTitleTextAttributes(
            [.font : UIFont.systemFont(ofSize: 20)], for: .normal
        )
    }
    
    var body: some View {
        VStack {
            
            Picker(selection: $selectedIndex, label: Text("Select").foregroundColor(.red)) {
                ForEach(0..<5) {
                    Text("Item \($0)")
                }
            }
            .pickerStyle(SegmentedPickerStyle())
        }
    }
}

コメント

タイトルとURLをコピーしました