如何使我的控件的所有字体大小相同?

问题描述 投票:0回答:1

我正在使用 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 都不知道:(

swift swiftui fonts size picker
1个回答
0
投票

不幸的是,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
)

欲了解更多选择器自定义或更高级的条件自定义,单击此处

如果您想要更多自定义,您可能需要创建自己的自定义选择器,这实现起来并不太困难:)

© www.soinside.com 2019 - 2024. All rights reserved.