【发布时间】:2012-09-01 22:13:21
【问题描述】:
在 iOS 5 上。
我有一个最初放置在笔尖中的 UILabel 元素。我希望 x 位置保持固定。我希望它采用 1 行或 2 行。如果多于两行,则应使用换行设置来显示省略号。
我使用numberOfLines 属性和-sizeToFit
如果我将 UILabel 的 numberOfLines 属性设置为 0,它将正确地看到对于某些文本,没有足够的空间并在调用 -sizeToFit 后将其换行到第二行,但在极少数情况下,该行足够长到 3 行,我得到了 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 处。
感谢您的任何见解。
【问题讨论】:
-
我认为这个帖子可能对stackoverflow.com/questions/5041874/…有帮助
-
这是一个老问题,可能与当前的 iOS 无关,但我看不出它是如何重复的。我读了一个声称这是重复的问题,这是一个不同的问题。这个问题询问
-sizeToFit设置的负 X,而不是 UILabel 中的垂直对齐文本。
标签: ios5 uilabel text-size sizetofit