【问题标题】:Changing UIButton Font in Swift在 Swift 中更改 UIButton 字体
【发布时间】:2016-09-07 06:20:10
【问题描述】:

我试图在我的代码中更改视图控制器上按钮的字体,因为它在情节提要中不起作用。出于某种原因,我一直在尝试,但无法更改按钮的字体。这是我的代码的样子。我选择的字体名称是“Print Clearly”,并且我已经正确设置了它,以便它可以在文本字段上使用,但是按钮有问题。

@IBOutlet weak var songSuggestButton: UIButton!
  var theFont : UIFont = UIFont(name: "Print Clearly", size: 12)!

override func viewDidLoad() {
  super.viewDidLoad()
  songSuggestButton.titleLabel?.font = theFont
  print(songSuggestButton.titleLabel?.font.fontDescriptor())
}

打印告诉我字体是 Print Clearly 和 12 号,但在我运行我的应用程序时仍显示为默认字体。

更新:第二个答案实际上对我有用。

> 试试这个:

@IBOutlet weak var songSuggestButton: UIButton!

override func viewDidAppear() {
 super.viewDidAppear(false)
 songSuggestButton.titleLabel?.font = UIFont(name: "Print Clearly", size: 12)!
 print(songSuggestButton.titleLabel?.font.fontDescriptor())
}

奇怪的是,我的按钮自定义字体仅在通过此代码启动时才起作用。我还想为不同的视图大小设置不同大小的字体,有没有办法做到这一点?谢谢。

【问题讨论】:

  • @DanielDoubt For:“我还想为我的不同视图大小设置不同大小的字体,有没有办法做到这一点?谢谢。”这是一个完全不同的问题。所以请再问一个:D

标签: swift button fonts


【解决方案1】:

您可以按照以下说明操作:

  • 首先下载字体文件并将其添加到 Xcode 中的项目中(The 文件也应该出现在“Target -> Build Phases -> Copy Bundle 资源”)。
  • 在您的 Info.plist 文件中添加键“应用程序提供的字体” 类型为“数组”。
  • 对于要添加到项目中的每种字体,为 您使用文件的全名创建的数组,包括其 扩展名(例如 PrintClearly.ttf)。保存您的“Info.plist” 文件。
  • 不要忘记将您的自定义字体包含在“Copy Bundle 资源”部分,如果您还没有或您将无法使用 他们

现在您可以使用以下代码:

songSuggestButton.titleLabel?.font = UIFont (name: "Print Clearly", size: 12)

更新:

您可以将此代码放在viewDidLoadviewDidAppear 中, UIKit 不是线程安全的,只能从主线程更新。

因此,为了确保您将在主线程上更新您的 UI,您可以这样做:

dispatch_async(dispatch_get_main_queue()) {
    songSuggestButton.titleLabel?.font = theFont
    songSuggestButton.setNeedsDisplay()
}

要回答您的最后一个问题,您必须知道标签是受约束的,并且当您更改标签大小时,您会更改标签框架尺寸,因此也会更改他的约束。如果视图很少,iOS 中最好的方法是制作具有不同标签大小的不同 xib,并为该视图加载最佳 xib。

【讨论】:

    猜你喜欢
    • 2023-03-04
    • 2014-04-05
    • 1970-01-01
    • 1970-01-01
    • 2022-01-02
    • 2015-01-06
    • 2014-11-22
    • 2017-07-08
    • 1970-01-01
    相关资源
    最近更新 更多