uilabel尾截断

glo*_*gic 7 objective-c uilabel ios

我正在使用目标c在ios应用程序上工作,我与uilabel有一个问题,我可以使用一些帮助.基本上我有一个标签,可以改变大小以适应它将显示的文本,但它有一个可能的最大高度.标签本身始终具有固定的宽度.我已经打开了UILineBreakModeWordWrap和UILineBreakModeTailTruncation来使文本适合并截断,但这会导致文本在它只剩下1个单词时过早地截断尾部.而当它仍有空间时,它将它移动到下一行,它只是截断它.

self.frame = CGRectMake(self.frame.origin.x, self.frame.origin.y, fixedWidth, 0);
self.lineBreakMode = UILineBreakModeWordWrap | UILineBreakModeTailTruncation;
self.numberOfLines = 0;
[self sizeToFit];
Run Code Online (Sandbox Code Playgroud)

无论如何找到uilabel实际截断文本的时间,然后我可以检查标签高度,如果还有空间则添加它?当有空间时,我总是尝试在高度上添加一条额外的线,这样可以避免早期截断,但是我会在整个标签上留下不一致的尺寸.任何想法都会非常感谢

Ste*_*ton 13

lineBreakMode是一个开关.它可以是任何(对iOS6的+)NSLineBreakByWordWrappingNSLineBreakByTruncatingTail,但不能同时使用.

但是,要回答您的问题,您可以使用类扩展来查找某些文本的大小NSString+UIKit.找到尺寸后,您可以更新相应的框架UILabel.