默认情况下,UILabels会截断文本,然后在末尾添加省略号。
如何将所有文本(包括椭圆)用双引号括起来?
答案 0 :(得分:1)
UILabel *label;
label.lineBreakMode = UILineBreakModeMiddleTruncation;
答案 1 :(得分:1)
除非在iPhone上有一个我不了解的更好的方便方法,我认为最简单和最灵活的做法是将UILabel子类化并实现自己的绘图和截断,使用各种sizeWithFont扩展来单独确定字符串的宽度和每组引号。
答案 2 :(得分:0)
您的标签文字是否可预测会导致截断(因此始终具有椭圆)?我对此表示怀疑,但如果确实如此,您知道内容基本上会填充宽度,因此您可以将引号标记为其他UILabel(甚至是图像)。这也可以为你提供字体和颜色控制。
答案 3 :(得分:0)
使用两个UILable
,第一个包含文本(加上一个开引号),第二个只包含一个关闭引用:
["text that is lon…]["]
答案 4 :(得分:0)
有一种正确的方法可以做到这一点,但它不会是最简单的事情。您需要执行以下操作:
使用引号确定标签的最大高度和最大宽度。确定标签的实际大小。您可以使用sizeWithFont:constrainedToSize:lineBreakMode:来执行此操作。如果第一个小于第二个,请从文本中删除最后一个单词,添加省略号,然后重试。这看起来像是:
NSString *nextLine = rawTextWithoutQuotes;
NSRange range = [nextLine rangeOfString: @" " options: NSBackwardsSearch];
if (range.location == NSNotFound) {
return nextLine;
} else {
nextLine = [nextLine substringToIndex: range.location];
}
继续这样做,直到你手动截断你的字符串,然后添加引号和省略号,把它放在你的标签中,你就完成了。