2016-04-30 25 views
-1

我有多行标签,它的帧根据文本长度正确变化。当我得到标签的宽度时,它计数整个标签的宽度,而我只想要第一行宽度。 我正在使用此代码来获取每一行。从多行标签获得第一行 - 物镜c

NSArray *linesArray = [self getLinesArrayOfStringInLabel:label]; 

当文本太长其工作正常,但是当文字很短的休息线在第二行最后一个字和标签它显示单行。

enter image description here

和数组是

linesArray = (
    " this is multiline label. I want just first ", 
    "line." 
) 

怎么回事错在这里?

+0

http://stackoverflow.com/questions/30435406/get-string-of-first-line-in-a-uilabel –

+0

我想知道你为什么要这样做?也许有另一种方式做你想做的... –

+0

我使用的是相同的代码... – Nisha

回答

0

您可以用下面的方法

//label is UILabel 
CGSize expectedLabelSize = [label.text boundingRectWithSize:self.view.frame.size 
             options:NSStringDrawingUsesLineFragmentOrigin 
             attributes:@{NSFontAttributeName:[UIFont fontWithName:@"Font you are using" size:<size of font>]} 
             context:nil].size; 

您可以使用尺寸为宽度和高度获取标签的动态大小。

+0

请写评论在投票之前iy有什么错误。 –