Swift:以编程方式使UILabel加粗而不更改其大小?
我有一个通过编程创建的UILabel。我想在不指定字体大小的情况下将标签文本加粗。到目前为止,我只发现:Swift:以编程方式使UILabel加粗而不更改其大小?,swift,uilabel,bold,Swift,Uilabel,Bold,我有一个通过编程创建的UILabel。我想在不指定字体大小的情况下将标签文本加粗。到目前为止,我只发现: UIFont.boldSystemFont(ofSize: CGFloat) 这正是我所拥有的: let titleLabel = UILabel() let fontSize: CGFloat = 26 titleLabel.font = UIFont.boldSystemFont(ofSize: titleLabelFontSize) 但这样我也可以设定尺寸。我想避免这种情况。有办
UIFont.boldSystemFont(ofSize: CGFloat)
这正是我所拥有的:
let titleLabel = UILabel()
let fontSize: CGFloat = 26
titleLabel.font = UIFont.boldSystemFont(ofSize: titleLabelFontSize)
但这样我也可以设定尺寸。我想避免这种情况。有办法吗
如果没有办法,Swift中有什么好的解决方法
谢谢大家! 为什么不:
titleLabel.font = UIFont.boldSystemFont(ofSize: titleLabel.font.pointSize)
要使字体加粗而不改变字体大小,可以创建如下扩展名(基于答案: 所以你可以这样使用它:
let titleLabel = UILabel()
titleLabel.font = titleLabel.font.bold() //no need to include size!
Swift 4语法更新:
extension UIFont {
func withTraits(traits:UIFontDescriptorSymbolicTraits...) -> UIFont {
let descriptor = self.fontDescriptor
.withSymbolicTraits(UIFontDescriptorSymbolicTraits(traits))
return UIFont(descriptor: descriptor!, size: 0)
}
func bold() -> UIFont {
return withTraits(traits: .traitBold)
}
}
类似这样的内容:
titleLabel.font=UIFont.boldSystemFont(ofSize:titleLabel.font.pointSize)
?这可能会有帮助:谢谢!效果很好!谢谢对我有用。谢谢!我给出了不同的答案,但我从你的帖子中学到了一些东西。
extension UIFont {
func withTraits(traits:UIFontDescriptorSymbolicTraits...) -> UIFont {
let descriptor = self.fontDescriptor
.withSymbolicTraits(UIFontDescriptorSymbolicTraits(traits))
return UIFont(descriptor: descriptor!, size: 0)
}
func bold() -> UIFont {
return withTraits(traits: .traitBold)
}
}