如何用Swift改变UIButton的字体

我试图改变一个UIButton的字体使用Swift…

myButton.font = UIFont(name: "...", 10)

然而,.font已弃用,我不确定如何改变字体,否则。

有什么建议吗?

263950 次浏览

文档:

用于在按钮上显示文本的字体。(在iOS 3.0中已弃用。请使用titleLabelfont属性。)

来看看在这里

您应该设置按钮的titleLabel的字体。

myButton.titleLabel!.font = UIFont(name: "...", 10)

使用titleLabel代替。font属性在iOS 3.0中已弃用。它也不能在Objective-C中工作。titleLabel是用于在UIButton上显示标题的标签。

myButton.titleLabel?.font =  UIFont(name: YourfontName, size: 20)

但是,在设置标题文本时,只能使用setTitle:forControlState:。不要使用titleLabel直接为标题设置任何文本。

你应该遍历titleLabel属性。

button.titleLabel.font

font属性自iOS 3.0以来已弃用。

您不需要强制打开titleLabel来设置它。

myButton.titleLabel?.font = UIFont(name: YourfontName, size: 20)

因为你没有在这里使用titleLabel,你可以选择使用它,如果它是nil,它将只是一个无操作。

我还将添加其他人所说的,字体属性已弃用,并确保在设置标题文本时使用setTitle:forControlState:

如果你有字体大小的问题(你的字体没有响应大小的变化)…

@codester有正确的代码:

myButton.titleLabel!.font =  UIFont(name: YourfontName, size: 20)

然而,我的字体大小并没有改变。结果是我要求的字体并不存在(“HelveticaNeue-Regular”)。它并没有导致崩溃,但似乎只是因为它忽略了字体声明。一旦我将字体更改为一些确实存在的东西,更改为“size: x”确实呈现。

斯威夫特3.0:

button.titleLabel?.font = UIFont.boldSystemFont(ofSize: 16)

其中“boldSystemFont”和“16”可以替换为您的自定义字体和大小。

这种方法现在行不通了:

 btn.titleLabel?.font = UIFont(name: "Helvetica", size:12)

如此:

 btn.titleLabel?.font = UIFont.init(name: "Helvetica", size:12)

这适用于Swift 3.0:

btn.titleLabel?.font = UIFont(name:"Times New Roman", size: 20)

例如:button.titleLabel?.font = UIFont(name: "HelveticaNeue-Bold", size: 12)

  • 如果你想使用它自己家族的默认字体,可以使用例如:“HelveticaNeue”
  • 如果你想指定家族字体,使用例如:“HelveticaNeue-Bold”

如果你将AttributedString设置为UIButton,那么你可以做下面的事情。

let attributedText = NSAttributedString(string: "Hello", attributes: [NSAttributedStringKey.font: UIFont(name: "Calibri", size: 19)])
okayButton.setAttributedTitle(attributedText, for: .normal)

点符号很棒👌

btn.titleLabel?.font = .systemFont(ofSize: 12)

这对我很有用,谢谢。我想改变文本大小,而不是改变字体名称。

var fontSizeButtonBig:Int = 30

btnMenu9.titleLabel ?。font = .systemFont(ofSize: CGFloat(fontSizeButtonBig))

如果你只需要改变size (斯威夫特4.0):

button.titleLabel?.font = button.titleLabel?.font.withSize(12)

我们可以像下面这样使用不同类型的系统字体

myButton.titleLabel?.font = UIFont.boldSystemFont(ofSize: 17)
myButton.titleLabel?.font = UIFont.italicSystemFont(ofSize:UIFont.smallSystemFontSize)
myButton.titleLabel?.font = UIFont.boldSystemFont(ofSize: UIFont.buttonFontSize)

和你的自定义字体如下

    myButton.titleLabel?.font = UIFont(name: "Helvetica", size:12)

在Swift 5中,你可以利用点表示法来实现更快的语法:

myButton.titleLabel?.font = .systemFont(ofSize: 14, weight: .medium)

否则,你将使用:

myButton.titleLabel?.font = UIFont.systemFont(ofSize: 14, weight: .medium)

正如很多人在这里提到的,你可以设置字体如下:

button.titleLabel?.font = .systemFont(ofSize: 19.0, weight: .bold)

只要确保你的按钮有default风格就可以了,否则上面的内容会被系统忽略。

enter image description here

要使用故事板完成此操作,请在选中按钮时转到属性检查器。在从顶部起的第三个字段(“标题”)中选择“归因”。这将弹出字体下拉列表,您可以轻松更改字体。