【发布时间】:2016-05-24 09:18:24
【问题描述】:
我有一个UILabel,它作为titleView 放在导航栏中。我希望它有 2 行,其中第一行可以截断,第二行居中对齐。
在代码中看起来不像这样:
let label = UILabel()
let text = NSAttributedString(string: "Long long long text\nsecond line")
label.attributedText = text
label.textAlignment = .Center
label.numberOfLines = 0
label.lineBreakMode = .ByTruncatingTail
label.sizeToFit()
self.navigationItem.titleView = label
首行文字不超过可用情况下的效果 空间是这样的:
还不错,但是当第一行文字长于:
let text = NSAttributedString(string: "Very very very very very long text\nsecond line")
我想实现如下。
如何做到这一点?我尝试了 numberOfLines 和 lineBreakMode,但没有成功。
【问题讨论】:
-
你为什么不用里面有两个UILabel的UIView呢?
-
使用两个标签会给它们定位带来很多问题,相信我。两个标签是我的第一次尝试,但问题很大,所以我决定尝试使用一个标签。
-
lineBreakMode 是应用于整个内容的属性,并不适用于每一行。因此,您必须使用两个 UILabel。您在两个标签中遇到的所有问题是什么?
标签: ios swift uilabel uinavigationbar