Iphone UILabel中的行数

Iphone UILabel中的行数,iphone,objective-c,text,uilabel,lines,Iphone,Objective C,Text,Uilabel,Lines,我需要获得UILabel中的行数,以便将另一个UILabel移动到最后一行文本的底部。 我已经做了: int lines = [cellDetailTextLabel.text sizeWithFont:cellDetailTextLabel.font constrainedToSize:cellDetailTextLabel.frame.size lineBreakMode:UILineBreakModeWordWrap].height /16; 但这并不完美,因为有些情况下UILabel的

我需要获得UILabel中的行数,以便将另一个UILabel移动到最后一行文本的底部。 我已经做了:

int lines = [cellDetailTextLabel.text sizeWithFont:cellDetailTextLabel.font constrainedToSize:cellDetailTextLabel.frame.size lineBreakMode:UILineBreakModeWordWrap].height /16;

但这并不完美,因为有些情况下UILabel的长度为3行,但上面的代码只返回2行,但并非所有3行UILabel都是如此。

最好将UILabel的文本布局视为一个黑匣子(当文本太长时,它会自动调整字体大小)

改为考虑使用UIVIEW上浆方法:

// Ask the label to shrink (or grow) until it fits its text:
[cellDetailTextLabel sizeToFit];
// Get the frame.
CGRect r = cellDetailTextLabel.frame;
// Move its origin to below cellDetailTextLabel
r.origin.y = CGRectGetMaxY(r);
// Set its size to the size of the second label
r.size = cellLabel2.frame.size;
// Finally, move the second label
cellLabel2.frame = r;

我注意到iPhone4上的文本大小有一些奇怪的行为(有时标签是一个额外的线太高或太高);我不确定这是否在4.1中得到了修正。

16的除法是什么?16是线的高度,所以你得到以像素为单位的大小,除以16,然后得到线的数量。这是移动细节文本,而不是第二个标签。我需要两个标签在其父视图的垂直中心。