サイズが変更されるように 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 行しか計算されません。