我在没有故事板的情况下编码。我将Uilabels添加到ViewControllers上,就像以下相似,但字体样式以默认为单位。有人可以告诉我的代码问题吗?谢谢!
let label: UILabel = {
let label = UILabel()
label.font = UIFont(name: "Avenir-Light", size: 20)
let attributedText = NSMutableAttributedString(string: "Text.", attributes: [NSAttributedStringKey.foregroundColor: UIColor.black, NSAttributedStringKey.font: UIFont.systemFont(ofSize: 20)])
// Letter spacing
attributedText.addAttribute(NSAttributedStringKey.kern, value: 1.5, range: NSRange(location: 0, length: attributedText.length - 1))
// Charactor spacing
let paragraphStyle = NSMutableParagraphStyle()
paragraphStyle.lineSpacing = 4
attributedText.addAttribute(NSAttributedStringKey.paragraphStyle, value:paragraphStyle, range:NSMakeRange(0, attributedText.length))
label.attributedText = attributedText
return label
}()
属性文本的字体优先于标签本身的字体。并且您已经明确定义了您的属性文本以使用UIFont.systemFont(ofSize: 20)
。
我建议将您的字体用于属性字符串:
let font = UIFont(name: "Avenir-Light", size: 20)
let attributedText = NSMutableAttributedString(string: "Text.", attributes: [.foregroundColor: UIColor.black, .font: font])
或从属性字符串中省略它并使用标签的默认字体:
label.font = UIFont(name: "Avenir-Light", size: 20)
let attributedText = NSMutableAttributedString(string: "Text.", attributes: [.foregroundColor: UIColor.black])