Files
featherVoice/TUIKit/TUIChat/BaseCellData/Reply/TUITextReplyQuoteViewData.m
2025-08-08 10:49:36 +08:00

55 lines
2.0 KiB
Objective-C

//
// TUITextReplyQuoteViewData.m
// TUIChat
//
// Created by harvy on 2021/11/25.
// Copyright © 2023 Tencent. All rights reserved.
//
#import "TUITextReplyQuoteViewData.h"
#import <TIMCommon/NSString+TUIEmoji.h>
#import "TUITextMessageCellData.h"
@implementation TUITextReplyQuoteViewData
+ (instancetype)getReplyQuoteViewData:(TUIMessageCellData *)originCellData {
if (originCellData == nil) {
return nil;
}
if (![originCellData isKindOfClass:TUITextMessageCellData.class]) {
return nil;
}
TUITextReplyQuoteViewData *myData = [[TUITextReplyQuoteViewData alloc] init];
myData.text = [(TUITextMessageCellData *)originCellData content];
myData.originCellData = originCellData;
return myData;
}
- (CGSize)contentSize:(CGFloat)maxWidth {
NSAttributedString *attributeString = nil;
BOOL showRevokeStr = (self.originCellData.innerMessage.status == V2TIM_MSG_STATUS_LOCAL_REVOKED) &&
!self.showRevokedOriginMessage;
if (showRevokeStr) {
NSString * revokeStr = self.supportForReply?
TIMCommonLocalizableString(TUIKitRepliesOriginMessageRevoke):
TIMCommonLocalizableString(TUIKitReferenceOriginMessageRevoke);
attributeString = [revokeStr getFormatEmojiStringWithFont:[UIFont systemFontOfSize:10.0] emojiLocations:nil];
} else {
attributeString = [self.text getFormatEmojiStringWithFont:[UIFont systemFontOfSize:10.0] emojiLocations:nil];
}
CGSize size = [@"0" sizeWithAttributes:@{NSFontAttributeName : [UIFont systemFontOfSize:10.0]}];
CGRect rect = [attributeString boundingRectWithSize:CGSizeMake(maxWidth, size.height * 2)
options:NSStringDrawingUsesLineFragmentOrigin | NSStringDrawingUsesFontLeading
context:nil];
CGFloat h = rect.size.height < size.height * 2 ? rect.size.height : size.height * 2;
if (showRevokeStr && self.supportForReply) {
h = size.height *2;
}
return CGSizeMake(rect.size.width, h);
}
@end