Ios 为什么uibarbuttonite标题字体赢得';是否从应用程序范围的默认字体设置,除非删除并替换?
我使用Ios 为什么uibarbuttonite标题字体赢得';是否从应用程序范围的默认字体设置,除非删除并替换?,ios,swift,fonts,uibarbuttonitem,uitoolbar,Ios,Swift,Fonts,Uibarbuttonitem,Uitoolbar,我使用UILabelextension设置应用程序范围内的默认字体 extension UILabel { var defaultFontName : String { get { return self.font.fontName } set { self.font = UIFont(name: newValue, size: self.font.pointSize)} } } 并在AppDelegate中设置默认字体 UILabel.
UILabel
extension设置应用程序范围内的默认字体
extension UILabel {
var defaultFontName : String {
get { return self.font.fontName }
set { self.font = UIFont(name: newValue, size: self.font.pointSize)}
}
}
并在AppDelegate
中设置默认字体
UILabel.appearance().defaultFontName = "HelveticaNeue-CondensedBlack"
除了UIToolbar
中的uiBarButtonims
之外,所有文本在启动时都采用默认字体
如果应用程序脱离带有工具栏的视图控制器并返回,则工具栏按钮字体将设置为默认字体
我在另一个SO问题中读到一条评论,该问题描述了设置应用程序范围的默认字体,一些视图需要删除和替换以采用默认字体。我再也找不到那个评论了
经过反复试验,我发现如果我删除并替换viewdispect()
工具栏中的barbuttonims
,按钮将采用默认字体
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
let allButtons = toolbar.items
toolbar.setItems([], animated: false)
toolbar.setItems(allButtons, animated: true)
}
但是,如果在viewwillbeen()或viewDidLoad()中移除和替换按钮,则该功能不起作用。如果移除的动画设置为true,则该选项也不起作用
重置工具栏中的按钮时,无论动画设置为true还是false,都不重要
所有的按钮、标签、textview
都是在故事板中创建的,并且在启动时都采用默认字体,除了条形按钮项,所以这就是我问的原因
为什么barButtonItems
的行为与其他视图不同
为什么拆卸和更换它们可以解决问题