在 SwiftUI 中更改段控制器色调颜色
Change Segment Controller Tint Color in SwiftUI
我在我的应用程序中使用了分段选择器。我想将未选中的文本颜色更改为白色。我搜索了解决方案,但没有找到适合我的解决方案。
这是我的代码:
struct QuestionView: View {
@State private var selectedIndex = 0
init() {
UISegmentedControl.appearance().backgroundColor = UIColor(named: ColorName.appBlue.rawValue)
UISegmentedControl.appearance().setTitleTextAttributes([.foregroundColor: UIColor(named: ColorName.appBlue.rawValue)!], for: .selected)
UISegmentedControl.appearance().setTitleTextAttributes([.foregroundColor: UIColor.green], for: .normal)
UISegmentedControl.appearance().setTitleTextAttributes([
.font : UIFont.preferredFont(forTextStyle: .headline)
], for: .normal)
}
var body: some View {
VStack(alignment: .leading) {
NavBar(navTitle: "Questionnaire")
HStack {
Text("Is this a live claim?")
.font(.custom(InterFont.bold.rawValue, size: 24))
Spacer()
Picker("What is your favorite color?", selection: $selectedIndex) {
Text("Yes").tag(1)
Text("No").tag(0)
}
.pickerStyle(.segmented)
.frame(width: 130)
.cornerRadius(40)
}.padding()
Spacer()
}
}
}
从这段代码,我得到这个:
选中的色调颜色发生变化,未选中的色调不变。 unselected 我想要白色。这是我需要的:
由于字体 属性,同样的事情发生在我身上。请尝试删除最后一条用于设置 Segmentation Controller 字体的语句。
init() {
UISegmentedControl.appearance().backgroundColor = UIColor(named: ColorName.appBlue.rawValue)
UISegmentedControl.appearance().setTitleTextAttributes([.foregroundColor: UIColor(named: ColorName.appBlue.rawValue)!], for: .selected)
UISegmentedControl.appearance().setTitleTextAttributes([.foregroundColor: UIColor.green], for: .normal)
}
我在我的应用程序中使用了分段选择器。我想将未选中的文本颜色更改为白色。我搜索了解决方案,但没有找到适合我的解决方案。 这是我的代码:
struct QuestionView: View {
@State private var selectedIndex = 0
init() {
UISegmentedControl.appearance().backgroundColor = UIColor(named: ColorName.appBlue.rawValue)
UISegmentedControl.appearance().setTitleTextAttributes([.foregroundColor: UIColor(named: ColorName.appBlue.rawValue)!], for: .selected)
UISegmentedControl.appearance().setTitleTextAttributes([.foregroundColor: UIColor.green], for: .normal)
UISegmentedControl.appearance().setTitleTextAttributes([
.font : UIFont.preferredFont(forTextStyle: .headline)
], for: .normal)
}
var body: some View {
VStack(alignment: .leading) {
NavBar(navTitle: "Questionnaire")
HStack {
Text("Is this a live claim?")
.font(.custom(InterFont.bold.rawValue, size: 24))
Spacer()
Picker("What is your favorite color?", selection: $selectedIndex) {
Text("Yes").tag(1)
Text("No").tag(0)
}
.pickerStyle(.segmented)
.frame(width: 130)
.cornerRadius(40)
}.padding()
Spacer()
}
}
}
从这段代码,我得到这个:
选中的色调颜色发生变化,未选中的色调不变。 unselected 我想要白色。这是我需要的:
由于字体 属性,同样的事情发生在我身上。请尝试删除最后一条用于设置 Segmentation Controller 字体的语句。
init() {
UISegmentedControl.appearance().backgroundColor = UIColor(named: ColorName.appBlue.rawValue)
UISegmentedControl.appearance().setTitleTextAttributes([.foregroundColor: UIColor(named: ColorName.appBlue.rawValue)!], for: .selected)
UISegmentedControl.appearance().setTitleTextAttributes([.foregroundColor: UIColor.green], for: .normal)
}