如何在autolayout中使用NSLineBreakByTruncatingMiddle和sizeToFit实现Multiline UILabel?

时间:2013-06-28 06:26:26

标签: objective-c ios6 uilabel autolayout

我有两行UILabel。我想要它的换行模式NSLineBreakByTruncatingMiddle。我得到的问题是,如果文本足够小以适合一行,它显示在标签的中间而不是顶部。我正在使用iOS6和autolayout,因此sizeToFit对我不起作用。 我怎样才能实现这一目标?我想如果文字很小以适合一行它应该垂直顶部对齐。 我尝试了this,但它只截断并显示一行而不是两行。

1 个答案:

答案 0 :(得分:0)

您需要计算所需的尺寸并更新标签的框架:

CGSize s = [myLabelString sizeWithFont:...
                     constrainedToSize:CGSizeMake(..., MAXFLOAT)
                         lineBreakMode:NSLineBreakByTruncatingMiddle];

使用您的标签使用的任何字体及其宽度。