From 7d583ceb1d8831d749ddbdf2896e3f8d85806055 Mon Sep 17 00:00:00 2001 From: CodeST <694468528@qq.com> Date: Wed, 28 Jan 2026 13:43:36 +0800 Subject: [PATCH] 1 --- .../comment_nor_icon.imageset/Contents.json | 22 ++++++++++ .../comment_nor_icon@2x.png | Bin 0 -> 760 bytes .../comment_nor_icon@3x.png | Bin 0 -> 1236 bytes .../comment_sel_icon.imageset/Contents.json | 22 ++++++++++ .../comment_sel_icon@2x.png | Bin 0 -> 705 bytes .../comment_sel_icon@3x.png | Bin 0 -> 1175 bytes keyBoard/Class/AiTalk/M/KBAICommentModel.h | 2 +- keyBoard/Class/AiTalk/M/KBAICommentModel.m | 30 +++++++++++--- keyBoard/Class/AiTalk/M/KBAIReplyModel.m | 31 ++++++++++++-- .../Class/AiTalk/V/KBAICommentFooterView.m | 2 +- .../Class/AiTalk/V/KBAICommentHeaderView.m | 35 ++++++++-------- keyBoard/Class/AiTalk/V/KBAICommentView.m | 39 +++++++++++++++--- keyBoard/Class/AiTalk/V/KBAIReplyCell.m | 4 +- keyBoard/Class/AiTalk/V/KBPersonaChatCell.m | 1 + 14 files changed, 152 insertions(+), 36 deletions(-) create mode 100644 keyBoard/Assets.xcassets/AI/comment_nor_icon.imageset/Contents.json create mode 100644 keyBoard/Assets.xcassets/AI/comment_nor_icon.imageset/comment_nor_icon@2x.png create mode 100644 keyBoard/Assets.xcassets/AI/comment_nor_icon.imageset/comment_nor_icon@3x.png create mode 100644 keyBoard/Assets.xcassets/AI/comment_sel_icon.imageset/Contents.json create mode 100644 keyBoard/Assets.xcassets/AI/comment_sel_icon.imageset/comment_sel_icon@2x.png create mode 100644 keyBoard/Assets.xcassets/AI/comment_sel_icon.imageset/comment_sel_icon@3x.png diff --git a/keyBoard/Assets.xcassets/AI/comment_nor_icon.imageset/Contents.json b/keyBoard/Assets.xcassets/AI/comment_nor_icon.imageset/Contents.json new file mode 100644 index 0000000..35f9dbc --- /dev/null +++ b/keyBoard/Assets.xcassets/AI/comment_nor_icon.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "comment_nor_icon@2x.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "filename" : "comment_nor_icon@3x.png", + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/keyBoard/Assets.xcassets/AI/comment_nor_icon.imageset/comment_nor_icon@2x.png b/keyBoard/Assets.xcassets/AI/comment_nor_icon.imageset/comment_nor_icon@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..27a376129adb214d0ce5cd381b2b10be6bb6f730 GIT binary patch literal 760 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 literal 0 HcmV?d00001 diff --git a/keyBoard/Assets.xcassets/AI/comment_sel_icon.imageset/comment_sel_icon@3x.png b/keyBoard/Assets.xcassets/AI/comment_sel_icon.imageset/comment_sel_icon@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..9db05b88941ccbb55f6670d00b969b9b5ba2ccff GIT binary patch literal 1175 zcmV;I1Zew-P)06dOlFhKn#qiDW;y5nopbL! z-<|K?xx1?xbYR~hvIWqok^+d8q*O1Z)4g~a z&rEfgYdtyuA|E4&H=(tp9zZ&&q2be7PC;x@0$8IbcFHB4d0Ms3{HJtvz2P~9C`1Q< z=p7x0tt_2+TD8vHOtzi#oI(^L0f19xF{trUz&PHQ&d!#AeWtlb0)Rx?rj7jgh6ZYG zUh;Ui+8)sWU|#A@Qu;Yeep|+o(Q$3d!o#DV*=Y zDI_AGUJ)QdN%$wQe0eJ(2)cm@^wH<-0}A;G4WMLMZCJ_Y-8g(4H%&F_<5VmT8>bLS zC;*y1mSw$*`JaUv@o~I%UBsbO>ZWlDk%R(3?d=Oeh0mb&9AdalLqk{R(66G)oB>F8 zcN1CGW{mb0G`KMT&x3<{9|Z5~>k$}$5GlNQ-^R)F7xbqZ95>UzB76L?CTkDq7ntK5s{k;KW3%~>%QwQj_GdmnR##W?dup=wfXJEpd_M16 zKhhK``x_!DKZ!x~{|U@zskLrf-Hxa*im9wjCok$Y4wZ|1FA?>uUqOcmwxC$$kxm!WZ! zGOo=hpx<*}-(a=i6z|yK(4|ZN;J3z4;P?mh9Mq}iJa27!#YJ@BSt=C1Kz#qrH1|UQ p00960ns{@d00006Nkl 0) { @@ -44,6 +39,28 @@ } } +#pragma mark - MJExtension Hook + +/// MJExtension 转换完成后的钩子方法,用于处理空值 +- (void)mj_didConvertToObjectWithKeyValues:(NSDictionary *)keyValues { + // 防止后端返回 null,统一设置空字符串为默认值 + if (!_commentId) { + _commentId = @""; + } + if (!_userId) { + _userId = @""; + } + if (!_userName) { + _userName = @""; + } + if (!_avatarUrl) { + _avatarUrl = @""; + } + if (!_content) { + _content = @""; + } +} + - (instancetype)init { self = [super init]; if (self) { @@ -133,7 +150,8 @@ // 内容高度(多行) UIFont *contentFont = [UIFont systemFontOfSize:15]; - CGRect contentRect = [self.content boundingRectWithSize:CGSizeMake(contentWidth, CGFLOAT_MAX) + NSString *contentText = self.content ?: @""; + CGRect contentRect = [contentText boundingRectWithSize:CGSizeMake(contentWidth, CGFLOAT_MAX) options:NSStringDrawingUsesLineFragmentOrigin | NSStringDrawingUsesFontLeading attributes:@{NSFontAttributeName: contentFont} context:nil]; diff --git a/keyBoard/Class/AiTalk/M/KBAIReplyModel.m b/keyBoard/Class/AiTalk/M/KBAIReplyModel.m index 43ea95b..be29c26 100644 --- a/keyBoard/Class/AiTalk/M/KBAIReplyModel.m +++ b/keyBoard/Class/AiTalk/M/KBAIReplyModel.m @@ -7,7 +7,6 @@ #import "KBAIReplyModel.h" #import -#import "KBAIReplyModel.h" @implementation KBAIReplyModel @@ -40,6 +39,31 @@ } } +#pragma mark - MJExtension Hook + +/// MJExtension 转换完成后的钩子方法,用于处理空值 +- (void)mj_didConvertToObjectWithKeyValues:(NSDictionary *)keyValues { + // 防止后端返回 null,统一设置空字符串为默认值 + if (!_replyId) { + _replyId = @""; + } + if (!_userId) { + _userId = @""; + } + if (!_userName) { + _userName = @""; + } + if (!_avatarUrl) { + _avatarUrl = @""; + } + if (!_content) { + _content = @""; + } + if (!_replyToUserName) { + _replyToUserName = @""; + } +} + - (NSString *)formattedTime { NSDate *date = [NSDate dateWithTimeIntervalSince1970:self.createTime]; NSTimeInterval interval = [[NSDate date] timeIntervalSinceDate:date]; @@ -70,7 +94,7 @@ CGFloat contentWidth = maxWidth - 68 - 28 - 8 - 50; // 用户名高度(可能包含 "回复 @xxx") - NSMutableString *userNameText = [NSMutableString stringWithString:self.userName]; + NSMutableString *userNameText = [NSMutableString stringWithString:self.userName ?: @""]; if (self.replyToUserName.length > 0) { [userNameText appendFormat:@" 回复 @%@", self.replyToUserName]; } @@ -83,7 +107,8 @@ // 内容高度 UIFont *contentFont = [UIFont systemFontOfSize:14]; - CGRect contentRect = [self.content boundingRectWithSize:CGSizeMake(contentWidth, CGFLOAT_MAX) + NSString *contentText = self.content ?: @""; + CGRect contentRect = [contentText boundingRectWithSize:CGSizeMake(contentWidth, CGFLOAT_MAX) options:NSStringDrawingUsesLineFragmentOrigin | NSStringDrawingUsesFontLeading attributes:@{NSFontAttributeName: contentFont} context:nil]; diff --git a/keyBoard/Class/AiTalk/V/KBAICommentFooterView.m b/keyBoard/Class/AiTalk/V/KBAICommentFooterView.m index f58d59f..82ba72b 100644 --- a/keyBoard/Class/AiTalk/V/KBAICommentFooterView.m +++ b/keyBoard/Class/AiTalk/V/KBAICommentFooterView.m @@ -29,7 +29,7 @@ #pragma mark - UI Setup - (void)setupUI { - self.contentView.backgroundColor = [UIColor whiteColor]; + self.contentView.backgroundColor = [UIColor clearColor]; [self.contentView addSubview:self.actionButton]; [self.contentView addSubview:self.lineView]; diff --git a/keyBoard/Class/AiTalk/V/KBAICommentHeaderView.m b/keyBoard/Class/AiTalk/V/KBAICommentHeaderView.m index 15c72f3..3bfa242 100644 --- a/keyBoard/Class/AiTalk/V/KBAICommentHeaderView.m +++ b/keyBoard/Class/AiTalk/V/KBAICommentHeaderView.m @@ -35,7 +35,7 @@ #pragma mark - UI Setup - (void)setupUI { - self.contentView.backgroundColor = [UIColor whiteColor]; + self.contentView.backgroundColor = [UIColor clearColor]; [self.contentView addSubview:self.avatarImageView]; [self.contentView addSubview:self.userNameLabel]; @@ -47,7 +47,7 @@ [self.avatarImageView mas_makeConstraints:^(MASConstraintMaker *make) { make.left.equalTo(self.contentView).offset(16); make.top.equalTo(self.contentView).offset(12); - make.width.height.mas_equalTo(40); + make.width.height.mas_equalTo(28); }]; [self.userNameLabel mas_makeConstraints:^(MASConstraintMaker *make) { @@ -98,12 +98,11 @@ comment.likeCount > 0 ? [self formatLikeCount:comment.likeCount] : @"赞"; self.likeButton.textLabel.text = likeText; - UIImage *likeImage = comment.isLiked - ? [UIImage systemImageNamed:@"heart.fill"] - : [UIImage systemImageNamed:@"heart"]; + UIImage *likeImage = comment.liked + ? [UIImage imageNamed:@"comment_sel_icon"] + : [UIImage imageNamed:@"comment_nor_icon"]; self.likeButton.iconView.image = likeImage; - self.likeButton.iconView.tintColor = - comment.isLiked ? [UIColor systemRedColor] : [UIColor grayColor]; + } - (NSString *)formatLikeCount:(NSInteger)count { @@ -135,7 +134,7 @@ if (!_avatarImageView) { _avatarImageView = [[UIImageView alloc] init]; _avatarImageView.contentMode = UIViewContentModeScaleAspectFill; - _avatarImageView.layer.cornerRadius = 20; + _avatarImageView.layer.cornerRadius = 14; _avatarImageView.layer.masksToBounds = YES; _avatarImageView.backgroundColor = [UIColor systemGray5Color]; } @@ -145,8 +144,9 @@ - (UILabel *)userNameLabel { if (!_userNameLabel) { _userNameLabel = [[UILabel alloc] init]; - _userNameLabel.font = [UIFont systemFontOfSize:14 weight:UIFontWeightMedium]; - _userNameLabel.textColor = [UIColor secondaryLabelColor]; + _userNameLabel.text = @"--"; + _userNameLabel.font = [UIFont systemFontOfSize:13 weight:UIFontWeightMedium]; + _userNameLabel.textColor = [UIColor colorWithHex:0x9F9F9F]; } return _userNameLabel; } @@ -154,8 +154,8 @@ - (UILabel *)contentLabel { if (!_contentLabel) { _contentLabel = [[UILabel alloc] init]; - _contentLabel.font = [UIFont systemFontOfSize:15]; - _contentLabel.textColor = [UIColor labelColor]; + _contentLabel.font = [UIFont systemFontOfSize:12]; + _contentLabel.textColor = [UIColor whiteColor]; _contentLabel.numberOfLines = 0; } return _contentLabel; @@ -165,7 +165,7 @@ if (!_timeLabel) { _timeLabel = [[UILabel alloc] init]; _timeLabel.font = [UIFont systemFontOfSize:12]; - _timeLabel.textColor = [UIColor secondaryLabelColor]; + _timeLabel.textColor = [UIColor colorWithHex:0x9F9F9F]; } return _timeLabel; } @@ -175,7 +175,7 @@ _replyButton = [UIButton buttonWithType:UIButtonTypeCustom]; _replyButton.titleLabel.font = [UIFont systemFontOfSize:12]; [_replyButton setTitle:@"回复" forState:UIControlStateNormal]; - [_replyButton setTitleColor:[UIColor secondaryLabelColor] forState:UIControlStateNormal]; + [_replyButton setTitleColor:[UIColor colorWithHex:0x9F9F9F] forState:UIControlStateNormal]; [_replyButton addTarget:self action:@selector(replyButtonTapped) forControlEvents:UIControlEventTouchUpInside]; @@ -188,10 +188,9 @@ _likeButton = [[KBTopImageButton alloc] init]; _likeButton.iconSize = CGSizeMake(20, 20); _likeButton.spacing = 2; - _likeButton.iconView.image = [UIImage systemImageNamed:@"heart"]; - _likeButton.iconView.tintColor = [UIColor grayColor]; - _likeButton.textLabel.font = [UIFont systemFontOfSize:11]; - _likeButton.textLabel.textColor = [UIColor grayColor]; + _likeButton.iconView.image = [UIImage imageNamed:@"comment_nor_icon"]; + _likeButton.textLabel.font = [UIFont systemFontOfSize:10]; + _likeButton.textLabel.textColor = [UIColor colorWithHex:0xC5BEB4]; [_likeButton addTarget:self action:@selector(likeButtonTapped) forControlEvents:UIControlEventTouchUpInside]; diff --git a/keyBoard/Class/AiTalk/V/KBAICommentView.m b/keyBoard/Class/AiTalk/V/KBAICommentView.m index baa196a..2e52175 100644 --- a/keyBoard/Class/AiTalk/V/KBAICommentView.m +++ b/keyBoard/Class/AiTalk/V/KBAICommentView.m @@ -23,6 +23,7 @@ static NSString *const kCommentFooterIdentifier = @"CommentFooter"; @interface KBAICommentView () +@property(nonatomic, strong) UIVisualEffectView *blurBackgroundView; @property(nonatomic, strong) UIView *headerView; @property(nonatomic, strong) UILabel *titleLabel; @property(nonatomic, strong) UIButton *closeButton; @@ -68,11 +69,18 @@ static NSString *const kCommentFooterIdentifier = @"CommentFooter"; #pragma mark - UI Setup - (void)setupUI { - self.backgroundColor = [UIColor whiteColor]; + // 设置背景为透明,让模糊效果可见 + self.backgroundColor = [UIColor clearColor]; self.layer.cornerRadius = 12; self.layer.maskedCorners = kCALayerMinXMinYCorner | kCALayerMaxXMinYCorner; self.clipsToBounds = YES; + // 添加模糊背景(最底层) + [self addSubview:self.blurBackgroundView]; + [self.blurBackgroundView mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.equalTo(self); + }]; + [self addSubview:self.headerView]; [self.headerView addSubview:self.titleLabel]; [self.headerView addSubview:self.closeButton]; @@ -293,8 +301,8 @@ static NSString *const kCommentFooterIdentifier = @"CommentFooter"; __weak typeof(self) weakSelf = self; header.onLikeAction = ^{ // TODO: 处理点赞逻辑 - comment.isLiked = !comment.isLiked; - comment.likeCount += comment.isLiked ? 1 : -1; + comment.liked = !comment.liked; + comment.likeCount += comment.liked ? 1 : -1; [weakSelf.tableView reloadSections:[NSIndexSet indexSetWithIndex:section] withRowAnimation:UITableViewRowAnimationNone]; }; @@ -449,10 +457,29 @@ static NSInteger const kRepliesLoadCount = 5; #pragma mark - Lazy Loading +- (UIVisualEffectView *)blurBackgroundView { + if (!_blurBackgroundView) { + // 创建模糊效果(43pt 的模糊半径) + // iOS 的 UIBlurEffect 没有直接设置模糊半径的 API,使用系统预设的 dark 效果 + UIBlurEffect *blurEffect = [UIBlurEffect effectWithStyle:UIBlurEffectStyleDark]; + _blurBackgroundView = [[UIVisualEffectView alloc] initWithEffect:blurEffect]; + + // 在模糊效果上叠加一个半透明黑色遮罩来调整透明度和颜色 + // 颜色:#000000,透明度:0.31 + UIView *darkOverlay = [[UIView alloc] init]; + darkOverlay.backgroundColor = [[UIColor blackColor] colorWithAlphaComponent:0.31]; + [_blurBackgroundView.contentView addSubview:darkOverlay]; + [darkOverlay mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.equalTo(_blurBackgroundView); + }]; + } + return _blurBackgroundView; +} + - (UIView *)headerView { if (!_headerView) { _headerView = [[UIView alloc] init]; - _headerView.backgroundColor = [UIColor whiteColor]; + _headerView.backgroundColor = [UIColor clearColor]; } return _headerView; } @@ -461,7 +488,7 @@ static NSInteger const kRepliesLoadCount = 5; if (!_titleLabel) { _titleLabel = [[UILabel alloc] init]; _titleLabel.font = [UIFont systemFontOfSize:15 weight:UIFontWeightMedium]; - _titleLabel.textColor = [UIColor labelColor]; + _titleLabel.textColor = [UIColor whiteColor]; _titleLabel.text = @"0条评论"; } return _titleLabel; @@ -486,7 +513,7 @@ static NSInteger const kRepliesLoadCount = 5; style:UITableViewStyleGrouped]; _tableView.dataSource = self; _tableView.delegate = self; - _tableView.backgroundColor = [UIColor whiteColor]; + _tableView.backgroundColor = [UIColor clearColor]; _tableView.separatorStyle = UITableViewCellSeparatorStyleNone; _tableView.keyboardDismissMode = UIScrollViewKeyboardDismissModeOnDrag; diff --git a/keyBoard/Class/AiTalk/V/KBAIReplyCell.m b/keyBoard/Class/AiTalk/V/KBAIReplyCell.m index a3ac551..8234e03 100644 --- a/keyBoard/Class/AiTalk/V/KBAIReplyCell.m +++ b/keyBoard/Class/AiTalk/V/KBAIReplyCell.m @@ -29,7 +29,9 @@ self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]; if (self) { self.selectionStyle = UITableViewCellSelectionStyleNone; - self.backgroundColor = [UIColor whiteColor]; + self.backgroundColor = [UIColor clearColor]; + self.contentView.backgroundColor = [UIColor clearColor]; + [self setupUI]; } return self; diff --git a/keyBoard/Class/AiTalk/V/KBPersonaChatCell.m b/keyBoard/Class/AiTalk/V/KBPersonaChatCell.m index e671a18..6bc58a4 100644 --- a/keyBoard/Class/AiTalk/V/KBPersonaChatCell.m +++ b/keyBoard/Class/AiTalk/V/KBPersonaChatCell.m @@ -541,6 +541,7 @@ popStyle:LSTPopStyleSmoothFromBottom dismissStyle:LSTDismissStyleSmoothToBottom]; customView.popView = popView; + popView.bgColor = [UIColor clearColor]; self.popView = popView; popView.priority = 1000; popView.isAvoidKeyboard = NO;