Обрезка хвоста uilabel

Я работаю над приложением ios, используя цель c, и у меня проблема с uilabel, с которой я мог бы помочь. В основном у меня есть метка, которая может изменять размер, чтобы соответствовать отображаемому тексту, но имеет максимальную возможную высоту. сама этикетка всегда имеет фиксированную ширину. Я включил UILineBreakModeWordWrap и UILineBreakModeTailTruncation, чтобы текст соответствовал и усекался, но это приводит к тому, что текст обрезает хвост слишком рано, когда остается только одно слово. вместо того, чтобы перемещать его на следующую строку, когда еще есть место, он просто обрезает его.

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

есть ли способ узнать, когда uilabel на самом деле усекает текст, чтобы я мог затем проверить высоту метки и добавить к ней, если еще есть место? Я старался всегда добавлять дополнительную строку к высоте, когда есть место, и это позволяет избежать преждевременного усечения, но затем я остался с непоследовательным размером общей метки. любые идеи по этому поводу были бы большой благодарностью

7
задан glogic 24 January 2012 в 10:50
поделиться