在 iOS 5 上。
我有一个最初放置在笔尖中的 UILabel 元素。我希望 x 位置保持固定。我希望它采用 1 行或 2 行。如果多于两行,则应使用换行设置来显示省略号。
我使用numberOfLines
财产和-sizeToFit
如果我将 UILabel 的numberOfLines
属性设置为 0,它会正确地看到对于某些文本,没有足够的空间,并会在调用后将其换行到第二行,-sizeToFit
但在极少数情况下,该行的长度足以延伸到 3 行,我得到三行,我不想要。如果我将numberOfLines
属性设置为 2,它实际上会将整个东西拉伸到一条线上,并将我在笔尖中设置的初始框架拉长得更宽。
CGRect titleFrame = [[self titleLabel] frame];
[[self titleLabel] setNumberOfLines:0];
[[self titleLabel] setText:newProductTitleText];
[[self titleLabel] sizeToFit];
CGRect newTitleFrame = [[self titleLabel] frame];
CGRect 只是为了让我能够在事后进行计算。因此设置numberOfLines
为 0 有效,并且不会更改框架中的原始 origin.x,并且会将长文本分成多行,但不会将其限制为 2 行。将numberOfLines
属性设置为 2,当我阅读 Apple 文档时
此属性控制要使用的最大行数,以使标签的文本适合其边界矩形。此属性的默认值为 1。要删除任何最大限制并根据需要使用尽可能多的行,请将此属性的值设置为 0。
看来我应该可以将其设置为两个并且仍然可以正常工作。我希望sizeToFit
在扩展以适合所有文本时在正 X 和 Y 方向上扩展,但当numberOfLines
设置为 0 以外时它在负 X 方向上扩展。
ETA:“Autosize”支柱设置为左上角以将其固定在最小 x,y 处。
感谢您的任何见解。