我正在尝试使用 Swift 更改 UIButton 的字体...
myButton.font = UIFont(name: "...", 10)
但是
.font
已被弃用,我不知道如何更改字体。
有什么建议吗?
请使用
titleLabel
代替。 iOS 3.0 中已弃用 font
属性。它在 Objective-C 中也不起作用。 titleLabel
是用于在 UIButton
上显示标题的标签。
myButton.titleLabel?.font = UIFont(name: YourfontName, size: 20)
但是,在设置标题文本时,您应该只使用
setTitle:forControlState:
。不要使用 titleLabel
直接设置任何标题文本。
对于 Swift 3.0:
button.titleLabel?.font = UIFont.boldSystemFont(ofSize: 16)
其中“boldSystemFont”和“16”可以替换为您的自定义字体和大小。
btn.titleLabel?.font = .systemFont(ofSize: 12)
如果您只需要更改大小(Swift 4.0):
button.titleLabel?.font = button.titleLabel?.font.withSize(12)
在 Swift 5 中,您可以使用点表示法来获得更快的语法:
myButton.titleLabel?.font = .systemFont(ofSize: 14, weight: .medium)
否则,你将使用:
myButton.titleLabel?.font = UIFont.systemFont(ofSize: 14, weight: .medium)
您不需要强制展开 titleLabel 来设置它。
myButton.titleLabel?.font = UIFont(name: YourfontName, size: 20)
由于您在这里没有使用 titleLabel,因此您可以选择使用它,如果它为 nil,则它只是一个空操作。
我还会像其他人所说的那样添加,字体属性已被弃用,并确保在设置标题文本时使用
setTitle:forControlState:
。
如果您将 AttributedString 设置为 UIButton,那么您可以执行以下操作。
let attributedText = NSAttributedString(string: "Hello", attributes: [NSAttributedStringKey.font: UIFont(name: "Calibri", size: 19)])
okayButton.setAttributedTitle(attributedText, for: .normal)
来自文档:
用于在按钮上显示文本的字体。 (在 iOS 3.0 中已弃用。请改用
font
的titleLabel
属性。)
如果您遇到字体大小问题(您的字体不响应大小更改)...
@codester 有正确的代码:
myButton.titleLabel!.font = UIFont(name: YourfontName, size: 20)
但是,我的字体大小没有改变。事实证明,我要求的字体不存在(“HelveticaNeue-Regular”)。它并没有导致崩溃,但似乎只是因此忽略了该字体声明。一旦我将字体更改为确实存在的字体,“size: x”的更改就会呈现。
我们可以使用不同类型的系统字体,如下所示
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)
您应该浏览
titleLabel
属性。
button.titleLabel.font
自 iOS 3.0 起,
font
属性已被弃用。
这适用于 Swift 3.0:
btn.titleLabel?.font = UIFont(name:"Times New Roman", size: 20)
示例:
button.titleLabel?.font = UIFont(name: "HelveticaNeue-Bold", size: 12)
要使用故事板执行此操作,请在选择按钮时转到属性检查器。 在顶部的第三个字段(“标题”)中,选择“属性”。 这将显示字体下拉列表,您可以在其中轻松更改字体。
斯威夫特5
myButton.titleLabel?.font = UIFont(name: "yourCustomFont", size: CGFloat(yourFontSize))
这个方法现在不行了:
btn.titleLabel?.font = UIFont(name: "Helvetica", size:12)
这有效:
btn.titleLabel?.font = UIFont.init(name: "Helvetica", size:12)
这对我有用,谢谢。我只想更改文本大小而不更改字体名称。
var fontSizeButtonBig:Int = 30
btnMenu9.titleLabel?.font = .systemFont(ofSize: CGFloat(fontSizeButtonBig))
configuration?.titleTextAttributesTransformer = UIConfigurationTextAttributesTransformer { inc in
var out = inc
out.font = .systemFont(ofSize: 11)
return out
}
titleLabel?.font = .systemFont(ofSize: 11)
“风格”只是故事板上使用的一个词。来设定所谓的“风格”,
button.configuration = .plain()
button.configuration = .gray()
button.configuration = .filled()
button.configuration = .tinted()
button.configuration = nil // MEANS "DEFAULT"