我正在使用 SwiftUI 创建一个应用程序。在视图中,我有一个文本编辑器、选择器和步进器。我希望字体是一样的。 这有效:
let defaultTextSize: CGFloat = 20
Text("test")
.font(.system(size: defaultTextSize))
TextEditor(text: $t)
.font(.system(size: defaultTextSize))
Stepper("\(selectedLevel)", value $selectedLevel, in: 1...7)
.font(.system(size: defaultTextSize))
//This does not work:
Picker("", selection: $selectedRarity){
ForEach(rarities, id: \.self) {rarity in Text(rarity.rawValue).tag(rarity)
.font(.system(size: defaultTextSize)) }
.frame(width: 70)
.font(.system(size: defaultTextSize))
无论我使用 .system(size: 或 .font(.title) 等,选择器内文本的字体大小都不会改变。
有什么想法吗?连 ChatGPT 都不知道:(
不幸的是,Apple 的原生 UI 组件通常不能完全自定义,但通常有一些 UIKit 解决方法可以在您的
init()
中实现。
在您的
View
结构中,您可以将以下内容放入您的 init()
中:
// Change the font size to built-in `TextStyle` types or your own types
//
// You can replace .highlighted with other types of text for the picker
UISegmentedControl.appearance().setTitleTextAttributes(
[.font : UIFont.preferredFont(forTextStyle: .title)],
for: .highlighted
)
欲了解更多选择器自定义或更高级的条件自定义,单击此处
如果您想要更多自定义,您可能需要创建自己的自定义选择器,这实现起来并不太困难:)