在iOS 5.的UILabel和numberOfLines和sizeToFit:
我有最初放置在笔尖一个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,当我读苹果文档
此属性控制,以适应标签的文本到它的边框采用的最大行数。此属性的默认值是1。要删除任何上限,并根据需要使用尽可能多的行,这个属性的值设置为0
看来我应该能够集这两个仍有它的工作。我希望sizeToFit
扩大,以适合所有文本时,在一个积极的X和Y方向扩展,但它是在负X方向上扩展时numberOfLines
被设置为非0
ETA:在“自动调整”支柱是设置为上和左,以固定在最小x,y。
感谢您的任何见解。
我觉得这个线程可以帮助http://stackoverflow.com/questions/5041874/uilabels-sizetofit-sizethatfits-ignore-the-numberoflines-property/13786846 #13786846 –
这是一个老问题,可能与当前iOS不相关,但我不明白它是如何重复的。我读了这个问题,声称这是一个重复的问题,这是一个不同的问题。这个问题是关于“-sizeToFit”设置的负X,而不是关于垂直对齐UILabel中的文本。 – chadbag