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

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

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

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

【问题讨论】:

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

标签: ios ios8 uibutton uiappearance


【解决方案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”。
      猜你喜欢
      • 2015-07-03
      • 1970-01-01
      • 1970-01-01
      • 2021-10-11
      • 1970-01-01
      • 1970-01-01
      • 2022-01-22
      • 2019-11-24
      • 2014-09-21
      相关资源
      最近更新 更多