我有一条多行UILabel
,文字为#34; 我想在印度洋乘船"。在iPhone 5中,UILabel
显示文字" 海洋"在第二行,因为宽度大小。
我想要的是如果UILabel
中的文字出现在两行中,那么文字" 印度洋"应显示在第二行或在有足够宽度的情况下,所有文本应出现在一行中。
任何想法如何实现这一点。
答案 0 :(得分:1)
它是一个解决方案。但这符合您的要求,无需确定运行应用程序的设备。通常UILabel
会将whitespaces
周围的单词换行。所以你可能应该indian ocean
一个单词,但它应该显示为两个单独的单词。
let string = "<font size = 5 face = Avenir Next>I would like to ride a boat in<font color = white>_</font>indian ocean</font>"
let attributedString = try? NSAttributedString(data: string.dataUsingEncoding(NSUTF8StringEncoding)!, options:[NSDocumentTypeDocumentAttribute:NSHTMLTextDocumentType, NSCharacterEncodingDocumentAttribute: NSUTF8StringEncoding], documentAttributes: nil)
label.attributedText = attributedString
您可以指定所需的字体大小,系列,并将_
的颜色设置为backgroundColor
的{{1}}。
答案 1 :(得分:1)
请检查以下代码:
let screenRect = UIScreen.mainScreen().bounds;
let screenWidth = screenRect.size.width;
let text:String = self.label.text!
let attr:NSDictionary = [NSFontAttributeName: self.label.font];
let textSize = (text as NSString).sizeWithAttributes(attr as? [String : AnyObject])
let textWidth = textSize.width
if textWidth > screenWidth{
self.label.text = "I would like to ride a boat in\nindian ocean"
}
答案 2 :(得分:1)
无需使用设备检测...使用一个技巧就可以解决这个问题“如果标签显示两行文字,那么文字”印度洋“将显示第二行或者它将显示在第一行。”
要遵循的步骤:
答案 3 :(得分:0)
label.numberOfLines = 0;
label.text = @"I would like to ride a boat in indian ocean";
[label sizeToFit];
答案 4 :(得分:0)