я подклассы в UILabel поэтому было бы изменить размеры себя, но по какой-то причине мое последнее слово усекается до ...высота установка метки программно
Большую часть времени это работает просто отлично, но по какой-то причине мое предложение с x символов усекаются, и я не понимаю, почему. Может ли кто-нибудь взглянуть на это?
- (void)setFrame:(CGRect)newFrame {
NSInteger maxNrOfLines = maxNumberOfLines == 0 ? 9999 : maxNumberOfLines;
NSString *text = self.text;
UIFont *font = self.font;
CGSize lineSize = CGSizeMake(newFrame.size.width, maxNrOfLines * font.lineHeight);
CGSize size = [text sizeWithFont:font constrainedToSize:lineSize lineBreakMode:self.lineBreakMode];
NSInteger lineCount = MIN(maxNrOfLines, MAX(1, size.height/font.lineHeight));
CGFloat height = font.lineHeight * lineCount + 10;
newFrame.size.height = height;
super.frame = newFrame;
super.numberOfLines = newFrame.size.height/font.lineHeight;
}
Мое предложение должно быть на 3 линии, но он рассчитывает только 2.
Вы проверили, каково фактическое значение 'maxNumberOfLines' и, как результат, значение' maxNrOfLines'? Возможно, я что-то упускаю, но я не вижу ничего другого, что могло бы вызвать это. – triazotan
maxNumberOfLines = 9999 maxNrOfLines = 0 В конечном счете lineCount будет 2 с моим отправлением –