This commit is contained in:
2026-01-16 20:31:42 +08:00
parent 663cb8493b
commit 93489b09d9
6 changed files with 302 additions and 116 deletions

View File

@@ -43,29 +43,35 @@
}
// Cell
// (68) + (28) + (8) + + (8) + (40) + (16)
// = maxWidth - 68 - 28 - 8 - 8 - 40 - 16
CGFloat contentWidth = maxWidth - 68 - 28 - 8 - 8 - 40 - 16;
// (68) + (28) + (8) + + (50)
// = maxWidth - 68 - 28 - 8 - 50
CGFloat contentWidth = maxWidth - 68 - 28 - 8 - 50;
//
NSMutableString *fullText = [NSMutableString stringWithString:self.userName];
// "回复 @xxx"
NSMutableString *userNameText = [NSMutableString stringWithString:self.userName];
if (self.replyToUserName.length > 0) {
[fullText appendFormat:@" 回复 @%@", self.replyToUserName];
[userNameText appendFormat:@" 回复 @%@", self.replyToUserName];
}
[fullText appendFormat:@"%@", self.content];
UIFont *userNameFont = [UIFont systemFontOfSize:13 weight:UIFontWeightMedium];
CGRect userNameRect = [userNameText boundingRectWithSize:CGSizeMake(contentWidth, CGFLOAT_MAX)
options:NSStringDrawingUsesLineFragmentOrigin | NSStringDrawingUsesFontLeading
attributes:@{NSFontAttributeName: userNameFont}
context:nil];
CGFloat userNameHeight = ceil(userNameRect.size.height);
//
UIFont *contentFont = [UIFont systemFontOfSize:14];
CGRect contentRect = [fullText boundingRectWithSize:CGSizeMake(contentWidth, CGFLOAT_MAX)
options:NSStringDrawingUsesLineFragmentOrigin | NSStringDrawingUsesFontLeading
attributes:@{NSFontAttributeName: contentFont}
context:nil];
CGRect contentRect = [self.content boundingRectWithSize:CGSizeMake(contentWidth, CGFLOAT_MAX)
options:NSStringDrawingUsesLineFragmentOrigin | NSStringDrawingUsesFontLeading
attributes:@{NSFontAttributeName: contentFont}
context:nil];
CGFloat contentHeight = ceil(contentRect.size.height);
//
CGFloat timeHeight = 14; // 11
// = (8) + + (4) + + (8)
CGFloat totalHeight = 8 + contentHeight + 4 + timeHeight + 8;
// = (8) + + (4) + + (6) + + (8)
CGFloat totalHeight = 8 + userNameHeight + 4 + contentHeight + 6 + timeHeight + 8;
// +
CGFloat minHeight = 8 + 28 + 8;