我对 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 行。