有没有一种方法可以在“分段选择器”中设置其他样式的自定义字体?

时间:2019-09-20 17:29:08

标签: swiftui

我想在使用PickeredPickerStyle()的Picker中设置一些字体样式。 但是,任何字体格式都将被忽略。有没有一种方法可以为segmentedPicker设置字体? 我很确定它适用于默认的pickerWheel。

import UIKit
import PlaygroundSupport
import SwiftUI

 // Make a SwiftUI view
 struct ContentView: View {
  @State private var selection: Int = 2
     var body: some View {
      Picker("", selection: self.$selection) {
                    Text("Shape").tag(0)
                    Text("Height").tag(1)
        Text("Media").tag(2).font(.headline)
                    }
                      .font(.headline)
                      .cornerRadius(8)
                      .padding(10)
                      .pickerStyle(SegmentedPickerStyle())
     }
}

// Make a UIHostingController
let viewController = UIHostingController(rootView: ContentView())

// Assign it to the playground's liveView
PlaygroundPage.current.liveView = viewController

// RUN!

enter image description here

1 个答案:

答案 0 :(得分:2)

SwiftUI在后台使用UIKit(适用于iOS),您应该为UISegmentedControl使用外观:

struct ContentView: View {

    init() {
        UISegmentedControl.appearance().selectedSegmentTintColor = .red
        UISegmentedControl.appearance().setTitleTextAttributes(
            [
                .font: UIFont.boldSystemFont(ofSize: 24),
                .foregroundColor: UIColor.white
        ], for: .selected)

        UISegmentedControl.appearance().setTitleTextAttributes(
            [
                .font: UIFont.boldSystemFont(ofSize: 12),
                .foregroundColor: UIColor.blue
        ], for: .normal)
    }

    var body: some View { ,,, }
}