gpt4 book ai didi

swift - 在 Swift 中更改 UIButton 字体

转载 作者:搜寻专家 更新时间:2023-11-01 05:57:15 24 4
gpt4 key购买 nike

我试图在代码中更改 View Controller 上按钮的字体,因为它在 Storyboard 中不起作用。出于某种原因,我一直在尝试,但无法更改按钮的字体。这是我的代码的样子。我选择的字体名称是“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,但在我运行我的应用时仍显示为默认字体。

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

> Try this:

@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())
}

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

最佳答案

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

  • 首先下载字体文件并将其添加到 Xcode 中的项目中(The文件也应该出现在“Target -> Build Phases -> Copy Bundle资源”)。
  • 在您的 Info.plist 文件中添加关键字“Fonts provided by application”类型为“数组”。
  • 对于要添加到项目中的每种字体,为您使用文件的全名创建的数组,包括它的扩展名(例如 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()
}

要回答你的最后一个问题,你必须知道标签是受约束的,当你改变标签大小时,你改变了标签框架尺寸,因此也改变了他的约束。如果您的 View 很少,iOS 中的最佳方法是使用不同的标签大小制作不同的 xib,并为该 View 加载最佳的 xib。

关于swift - 在 Swift 中更改 UIButton 字体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37169569/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com