iOS 8:UIButton 外观字体

Posted

技术标签:

【中文标题】iOS 8:UIButton 外观字体【英文标题】:iOS 8: UIButton appearance font 【发布时间】:2015-04-06 18:53:20 【问题描述】:

尝试使用 ios 8 中的外观为所有按钮设置 UIButton 的字体。谷歌搜索后,Apple 似乎已将您执行此操作的方式从操作系统更改为操作系统。在 iOS 7 中,这应该可以工作:

    UIButton.appearance().titleLabel?.font = UIFont.inviteButtonTitleFont()

但它似乎不再起作用了。有人知道你现在是怎么做到的吗?

【问题讨论】:

您是在使用 Playground 还是将您的 UI 元素放在应用视图的树中? 我正在从我的应用程序而不是 Playground 运行代码。 看,这个代理只有在 UILabel 也实现了全局更改字体的代理时才能正常工作。 【参考方案1】:

斯威夫特 3:

let fontRegular = UIFont(name: "MyCustomRegularFont", size: 17.0)
UILabel.appearance(whenContainedInInstancesOf: [UIButton.self]).font = fontRegular
UIButton.appearance().tintColor = UIColor.red

【讨论】:

【参考方案2】:

字体的代理已从 UILabel.appearance() 中删除,所以这就是它不起作用的原因。

【讨论】:

【参考方案3】:

使用UILabel上的方法包含时的外观

UILabel.appearanceWhenContainedInInstancesOfClasses([UIButton.self]).font = UIFont.inviteButtonTitleFont()

这应该适用于 iOS9,请参阅此答案 appearanceWhenContainedIn in Swift 了解 iOS8 和 7 解决方法。

(免责声明,我没有编译代码 sn-p 所以要小心拼写错误)。

【讨论】:

这对我不起作用,尽管它似乎应该这样做 类型“UILabel”没有成员“appearanceWhenContainedInInstancesOfClasses”。

以上是关于iOS 8:UIButton 外观字体的主要内容,如果未能解决你的问题,请参考以下文章

使 UIButton 图像在视网膜显示器上显得清晰完美

UIButton 外观 setBackgroundColor 更新后现在影响导航栏

UIBarButtonItem 外观代理设置字体属性在 iOS 11 中不起作用

如何更改 UIButton 标题?

如何使用 iOS5 外观 API 在 UINavigationBar 中设置标题的字体和颜色?

UI控件(UIButton)