UILabel 文本对齐不起作用(Swift 4)
Posted
技术标签:
【中文标题】UILabel 文本对齐不起作用(Swift 4)【英文标题】:UILabel text alignment not working (Swift 4) 【发布时间】:2018-06-20 06:52:19 【问题描述】:我正在尝试对齐 UILabel 中的文本,但它不起作用。文本打印时标签的第二行紧贴标签的左侧。如何使两条线在标签的中心对齐?谢谢。
let bioTextView: UILabel =
let tv = UILabel()
tv.text = "This is sample text for a bio label for a user on this platform."
tv.backgroundColor = .clear
tv.textColor = .white
tv.lineBreakMode = .byWordWrapping
tv.numberOfLines = 0
tv.textAlignment = NSTextAlignment.right
return tv
()
请查看以下屏幕截图以了解该问题。我的要求是使文本适合拖线。
【问题讨论】:
使用 tv.textAlignment = .justified 抱歉,这仍然导致第二行紧贴标签的左侧 :( 不过谢谢 @ethan-wilk :测试了您的代码,文本似乎与 value .center 完全对齐,您面临的问题是什么?添加截图进一步说明 通过将textAlignment值改为.center,就必须实现输出。如果您仍然遇到问题,我们将非常感谢您提供屏幕截图。 @KeyurTailor 这是问题的图片:imgur.com/a/crcX9Ah 也许是锚定问题? 【参考方案1】:将视图添加为子视图后尝试设置对齐方式。
view.addSubview(self.bioTextView)
bioTextView.textAlignment = .center
【讨论】:
【参考方案2】:试试这个:
let bioTextView: UILabel =
let tv = UILabel()
tv.backgroundColor = .clear
tv.textColor = .white
tv.lineBreakMode = .byWordWrapping
tv.numberOfLines = 0
let textString = NSMutableAttributedString(
string: "This is sample text for a bio label for a user on this platform.",
attributes: [:])
let textRange = NSRange(location: 0, length: textString.length)
let paragraphStyle = NSMutableParagraphStyle()
paragraphStyle.alignment = .center
textString.addAttribute(NSAttributedString.Key.paragraphStyle, value: paragraphStyle, range: textRange)
tv.attributedText = textString
return tv
()
【讨论】:
【参考方案3】:如果有人在使用 UIStackView 并遇到此问题:stackView.alignment
可能会破坏 label.textAlignment
属性。只需删除stackView.alignment
。
【讨论】:
【参考方案4】:更新以下代码行将解决您的问题:
tv.textAlignment = .center
这将使您的标签文本居中对齐。
【讨论】:
抱歉,这仍然导致第二行紧贴标签的左侧 :( 不过谢谢 检查一次你的标签框 @Anbu.karthik,说对了,看看你的标签框。你可以发布相同的图片吗? @SagarChauhan 这是问题的图片:imgur.com/a/crcX9Ah 也许是锚定问题? 你在使用任何自定义类的 UILabel 吗?以上是关于UILabel 文本对齐不起作用(Swift 4)的主要内容,如果未能解决你的问题,请参考以下文章
为啥在尝试垂直对齐我的 UILabel 时 sizeToFit 不起作用?它只是停留在中心
在 UILabel 中覆盖“文本”在 iOS 6 中不起作用
尝试根据文本长度使用 UILabel 移动图像,约束不起作用
UILabel NSTextAlignmentRight 不起作用?