From cfc8ed09229f845e498143161c2a6b68afbc3852 Mon Sep 17 00:00:00 2001 From: fengshuo <963787902@qq.com> Date: Wed, 15 Mar 2023 18:01:28 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9C=AA=E8=AF=BB=E6=B6=88=E6=81=AF=E4=B8=8D?= =?UTF-8?q?=E5=9B=9E=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../FootPrint/XPMineFootPrintTableViewCell.m | 1 + .../Friend/XPMineAttentionTableViewCell.m | 6 ++- .../Cell/Friend/XPMineFansTableViewCell.m | 4 ++ .../Model/XPMessageInfoModel.h | 2 + .../Tool/XPRoomMessageParser.m | 1 + .../View/XPRoomMessageAvatarTableViewCell.h | 5 ++- .../View/XPRoomMessageAvatarTableViewCell.m | 14 ++++++- .../XPRoomMessageContainerView.m | 41 ++++++++++++++++++- .../Main/Tabbar/View/TabbarViewController.m | 2 +- 9 files changed, 69 insertions(+), 7 deletions(-) diff --git a/xplan-ios/Main/Mine/View/Cell/FootPrint/XPMineFootPrintTableViewCell.m b/xplan-ios/Main/Mine/View/Cell/FootPrint/XPMineFootPrintTableViewCell.m index 8607dd8f..90e307f5 100644 --- a/xplan-ios/Main/Mine/View/Cell/FootPrint/XPMineFootPrintTableViewCell.m +++ b/xplan-ios/Main/Mine/View/Cell/FootPrint/XPMineFootPrintTableViewCell.m @@ -56,6 +56,7 @@ make.left.mas_equalTo(self.avaterImgView.mas_right).mas_offset(8); make.bottom.mas_equalTo(self.avaterImgView.mas_centerY).mas_offset(-4); make.height.mas_equalTo(14); + make.right.mas_lessThanOrEqualTo(self.timeLabel.mas_left).offset(-15); }]; [self.memberIdLabel mas_makeConstraints:^(MASConstraintMaker *make) { diff --git a/xplan-ios/Main/Mine/View/Cell/Friend/XPMineAttentionTableViewCell.m b/xplan-ios/Main/Mine/View/Cell/Friend/XPMineAttentionTableViewCell.m index 3447db1b..d6a8ec46 100644 --- a/xplan-ios/Main/Mine/View/Cell/Friend/XPMineAttentionTableViewCell.m +++ b/xplan-ios/Main/Mine/View/Cell/Friend/XPMineAttentionTableViewCell.m @@ -77,7 +77,11 @@ make.right.mas_lessThanOrEqualTo(self.findButton.mas_left).mas_offset(-4); make.bottom.mas_equalTo(self.avatarImageView.mas_centerY).offset(-2); }]; - + + [self.sexImageView mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(20, 20)); + }]; + [self.signLabel mas_makeConstraints:^(MASConstraintMaker *make) { make.left.mas_equalTo(self.stackView); make.top.mas_equalTo(self.avatarImageView.mas_centerY).offset(2); diff --git a/xplan-ios/Main/Mine/View/Cell/Friend/XPMineFansTableViewCell.m b/xplan-ios/Main/Mine/View/Cell/Friend/XPMineFansTableViewCell.m index f7212f13..a0a3ca93 100644 --- a/xplan-ios/Main/Mine/View/Cell/Friend/XPMineFansTableViewCell.m +++ b/xplan-ios/Main/Mine/View/Cell/Friend/XPMineFansTableViewCell.m @@ -84,6 +84,10 @@ make.top.mas_equalTo(self.avatarImageView.mas_centerY).offset(2); make.right.mas_equalTo(self.attentionButton.mas_left).mas_offset(-4); }]; + + [self.sexImageView mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(20, 20)); + }]; [self.attentionButton mas_makeConstraints:^(MASConstraintMaker *make) { make.width.mas_equalTo(65); diff --git a/xplan-ios/Main/Room/View/MessageContainerView/Model/XPMessageInfoModel.h b/xplan-ios/Main/Room/View/MessageContainerView/Model/XPMessageInfoModel.h index f4f465f8..34c4b7f6 100644 --- a/xplan-ios/Main/Room/View/MessageContainerView/Model/XPMessageInfoModel.h +++ b/xplan-ios/Main/Room/View/MessageContainerView/Model/XPMessageInfoModel.h @@ -33,6 +33,8 @@ NS_ASSUME_NONNULL_BEGIN @property (nonatomic,assign) BOOL isShowAvatar; ///头像地址 @property (nonatomic,strong) NSString *avatarUrl; +///用户的uid +@property (nonatomic,strong) NSString *uid; @end NS_ASSUME_NONNULL_END diff --git a/xplan-ios/Main/Room/View/MessageContainerView/Tool/XPRoomMessageParser.m b/xplan-ios/Main/Room/View/MessageContainerView/Tool/XPRoomMessageParser.m index 936d4564..73e72fc4 100644 --- a/xplan-ios/Main/Room/View/MessageContainerView/Tool/XPRoomMessageParser.m +++ b/xplan-ios/Main/Room/View/MessageContainerView/Tool/XPRoomMessageParser.m @@ -133,6 +133,7 @@ - (XPMessageInfoModel*)makeChatAttribute:(NIMMessage *)message messageInfo:(XPMessageInfoModel *)messageInfo{ NSString * uid = [AccountInfoStorage instance].getUid; messageInfo.isShowAvatar = YES; + messageInfo.uid = message.from; NIMUser * user = [[NIMSDK sharedSDK].userManager userInfo:message.from]; if (user) { messageInfo.avatarUrl = user.userInfo.avatarUrl.length > 0 ? user.userInfo.avatarUrl : user.userInfo.thumbAvatarUrl; diff --git a/xplan-ios/Main/Room/View/MessageContainerView/View/XPRoomMessageAvatarTableViewCell.h b/xplan-ios/Main/Room/View/MessageContainerView/View/XPRoomMessageAvatarTableViewCell.h index 09f97adf..5e0bbb3d 100644 --- a/xplan-ios/Main/Room/View/MessageContainerView/View/XPRoomMessageAvatarTableViewCell.h +++ b/xplan-ios/Main/Room/View/MessageContainerView/View/XPRoomMessageAvatarTableViewCell.h @@ -11,8 +11,9 @@ NS_ASSUME_NONNULL_BEGIN @class XPRoomMessageParser, YYLabel, XPRoomMessageAvatarTableViewCell, XPMessageInfoModel; @protocol XPRoomMessageAvatarTableViewCellDelegate -- (void)xPRoomMessageTableViewCellDidTapEmpty:(XPRoomMessageAvatarTableViewCell *)view; - +- (void)xPRoomMessageAvatarTableViewCellDelegateDidTapEmpty:(XPRoomMessageAvatarTableViewCell *)view; +///选择了用户头像 +- (void)xPRoomMessageAvatarTableViewCellDelegate:(XPRoomMessageAvatarTableViewCell *)view didTapAvatar:(NSString *)uid; @end @interface XPRoomMessageAvatarTableViewCell : UITableViewCell diff --git a/xplan-ios/Main/Room/View/MessageContainerView/View/XPRoomMessageAvatarTableViewCell.m b/xplan-ios/Main/Room/View/MessageContainerView/View/XPRoomMessageAvatarTableViewCell.m index cd93fae0..6b2523dd 100644 --- a/xplan-ios/Main/Room/View/MessageContainerView/View/XPRoomMessageAvatarTableViewCell.m +++ b/xplan-ios/Main/Room/View/MessageContainerView/View/XPRoomMessageAvatarTableViewCell.m @@ -77,11 +77,18 @@ #pragma mark - Event Response - (void)didTap { - if (self.delegate && [self.delegate respondsToSelector:@selector(xPRoomMessageTableViewCellDidTapEmpty:)]) { - [self.delegate xPRoomMessageTableViewCellDidTapEmpty:self]; + if (self.delegate && [self.delegate respondsToSelector:@selector(xPRoomMessageAvatarTableViewCellDelegateDidTapEmpty:)]) { + [self.delegate xPRoomMessageAvatarTableViewCellDelegateDidTapEmpty:self]; } } +- (void)tapAvatarRecognizer { + if (self.delegate && [self.delegate respondsToSelector:@selector(xPRoomMessageAvatarTableViewCellDelegate:didTapAvatar:)]) { + [self.delegate xPRoomMessageAvatarTableViewCellDelegate:self didTapAvatar:self.messageInfo.uid]; + } +} + + #pragma mark - Getters And Setters - (void)setMessageInfo:(XPMessageInfoModel *)messageInfo { _messageInfo = messageInfo; @@ -117,6 +124,9 @@ _avatarImageView.layer.masksToBounds = YES; _avatarImageView.layer.cornerRadius = 34/2; _avatarImageView.layer.borderColor = [ThemeColor appMainColor].CGColor; + _avatarImageView.userInteractionEnabled = YES; + UITapGestureRecognizer * tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapAvatarRecognizer)]; + [_avatarImageView addGestureRecognizer:tap]; } return _avatarImageView; } diff --git a/xplan-ios/Main/Room/View/MessageContainerView/XPRoomMessageContainerView.m b/xplan-ios/Main/Room/View/MessageContainerView/XPRoomMessageContainerView.m index f6fb99c4..7085acbe 100644 --- a/xplan-ios/Main/Room/View/MessageContainerView/XPRoomMessageContainerView.m +++ b/xplan-ios/Main/Room/View/MessageContainerView/XPRoomMessageContainerView.m @@ -32,15 +32,17 @@ #import "RoomSailingPrizeModel.h" #import "UserInfoModel.h" #import "XPMessageInfoModel.h" +#import "XPUserCardInfoModel.h" ///View #import "XPRoomMessageTableViewCell.h" #import "XPRoomMessageAvatarTableViewCell.h" #import "XPRoomMessageHeaderView.h" #import "View/XPRoomMessageHeaderView.h" +#import "XPUserCardViewController.h" NSString * const kRoomShowTopicKey = @"kRoomShowTopicKey"; -@interface XPRoomMessageContainerView () +@interface XPRoomMessageContainerView () ///房间的代理 @property (nonatomic,weak) id hostDelegate; @@ -876,6 +878,43 @@ NSString * const kRoomShowTopicKey = @"kRoomShowTopicKey"; } } +#pragma mark - XPRoomMessageAvatarTableViewCell +- (void)xPRoomMessageAvatarTableViewCellDelegateDidTapEmpty:(XPRoomMessageAvatarTableViewCell *)view{ + if (self.hostDelegate.getRoomInfo.type == RoomType_MiniGame) { + self.isLarge = !self.isLarge; + CGFloat height = self.isLarge ? 200 : 80; + [self mas_updateConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(height); + }]; + } +} + +- (void)xPRoomMessageAvatarTableViewCellDelegate:(XPRoomMessageAvatarTableViewCell *)view didTapAvatar:(NSString *)uid { + if (uid.length > 0) { + RoomInfoModel * roomInfo = self.hostDelegate.getRoomInfo; + NSString * targetUid = uid; + XPUserCardInfoModel * model = [[XPUserCardInfoModel alloc] init]; + [[self.hostDelegate.getMicroQueue allValues] enumerateObjectsUsingBlock:^(MicroQueueModel * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) { + if (uid.integerValue == obj.userInfo.uid) { + model.position = [NSString stringWithFormat:@"%d", obj.microState.position]; + model.posState = obj.microState.posState; + model.micState = obj.microState.micState; + *stop = YES; + } + }]; + model.nick = self.hostDelegate.getUserInfo.nick; + model.uid = targetUid; + model.micQueue = self.hostDelegate.getMicroQueue; + model.roomInfo = roomInfo; + model.delegate = self.hostDelegate; + model.superMangerList = self.hostDelegate.getRoomSuperAdminList; + XPUserCardViewController * userCardVC = [[XPUserCardViewController alloc] initWithUser:model]; + [self.hostDelegate.getCurrentNav presentViewController:userCardVC animated:YES completion:nil]; + } +} + + + #pragma mark - Getters And Setters - (UITableView *)messageTableView { if (!_messageTableView) { diff --git a/xplan-ios/Main/Tabbar/View/TabbarViewController.m b/xplan-ios/Main/Tabbar/View/TabbarViewController.m index 3825385d..6789697a 100644 --- a/xplan-ios/Main/Tabbar/View/TabbarViewController.m +++ b/xplan-ios/Main/Tabbar/View/TabbarViewController.m @@ -722,7 +722,7 @@ UIKIT_EXTERN NSString *kTabShowAnchorCardKey; if (unreadCount > 0) { [self.tabBar.items[3] setBadgeValue:[NSString stringWithFormat:@"%d", unreadCount]]; } else { - [self.tabBar.items[3] setBadgeValue:@"0"]; + [self.tabBar.items[3] setBadgeValue:nil]; } }); }