如何在 UIButton 中居中属性标题
How to center attributed title in UIButton
我正在尝试使 UIButton 的多行标题居中
我的按钮:
let aButton: UIButton = {
let button = UIButton()
button.titleLabel?.numberOfLines = 0
button.titleLabel?.textAlignment = .center
return button
}()
设置标题我使用的方法采用字符串和字体大小以及 returns NSAttributedString(顺便说一句,我无法修改它):
let title = markdownParser.parse(string: "my multiline string", fontSize: 15)
然后我设置了按钮的标题:
aButton.setAttributedTitle(title, for: .normal)
文本仍然左对齐,但是,我做错了什么?谢谢
约束设置如下:
addSubview(aButton)
aButton.snp.makeConstraints { maker in
maker.center.equalToSuperview()
maker.leading.trailing.equalToSuperview().inset(16)
}
这是因为文本是属性String,设置后需要对齐文本
适合您的解决方案是:
aButton.setAttributedTitle(title, for: .normal)
aButton.titleLabel?.textAlignment = .center
通过设置属性字符串而不是字符串,您将清除所有按钮的文本 属性。
更好的解决方案是将对齐属性添加到属性字符串中
我正在尝试使 UIButton 的多行标题居中
我的按钮:
let aButton: UIButton = {
let button = UIButton()
button.titleLabel?.numberOfLines = 0
button.titleLabel?.textAlignment = .center
return button
}()
设置标题我使用的方法采用字符串和字体大小以及 returns NSAttributedString(顺便说一句,我无法修改它):
let title = markdownParser.parse(string: "my multiline string", fontSize: 15)
然后我设置了按钮的标题:
aButton.setAttributedTitle(title, for: .normal)
文本仍然左对齐,但是,我做错了什么?谢谢
约束设置如下:
addSubview(aButton)
aButton.snp.makeConstraints { maker in
maker.center.equalToSuperview()
maker.leading.trailing.equalToSuperview().inset(16)
}
这是因为文本是属性String,设置后需要对齐文本
适合您的解决方案是:
aButton.setAttributedTitle(title, for: .normal)
aButton.titleLabel?.textAlignment = .center
通过设置属性字符串而不是字符串,您将清除所有按钮的文本 属性。
更好的解决方案是将对齐属性添加到属性字符串中