From 778b9cfa4b1d5c070b412b1425babd1a0a18845e Mon Sep 17 00:00:00 2001 From: eggmanQQQ <3671373519@qq.com> Date: Thu, 8 Aug 2024 15:45:46 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E6=AD=A3=E6=88=91=E7=9A=84=20t?= =?UTF-8?q?ab=20=E6=B8=B2=E6=9F=93=E5=8D=A1=E4=B8=BB=E7=BA=BF=E7=A8=8B?= =?UTF-8?q?=E9=97=AE=E9=A2=98=20=EF=BD=9C=20=E4=BF=AE=E6=AD=A3=E9=9D=93?= =?UTF-8?q?=E5=8F=B7=20ID=20centerY=20=E5=AF=B9=E9=BD=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../View/SubViews/MineInfo/XPBeautIDView.m | 4 +- .../YMMine/View/SubViews/XPMineHeadView.h | 2 +- .../YMMine/View/SubViews/XPMineHeadView.m | 132 +++++++++++++++--- .../YMMine/View/XPMineViewController.m | 25 +--- .../Tool/XPRoomMessageParser.m | 1 - .../RoomGame/View/SubView/MSRoomGameView.m | 4 +- 6 files changed, 120 insertions(+), 48 deletions(-) diff --git a/YuMi/Modules/YMMine/View/SubViews/MineInfo/XPBeautIDView.m b/YuMi/Modules/YMMine/View/SubViews/MineInfo/XPBeautIDView.m index 4c1a4233..ca363055 100644 --- a/YuMi/Modules/YMMine/View/SubViews/MineInfo/XPBeautIDView.m +++ b/YuMi/Modules/YMMine/View/SubViews/MineInfo/XPBeautIDView.m @@ -39,7 +39,7 @@ make.trailing.mas_equalTo(self).offset(-26); } - make.centerY.mas_equalTo(self); + make.centerY.mas_equalTo(self).offset(0.8); }]; [self.copiedImageView mas_makeConstraints:^(MASConstraintMaker *make) { @@ -55,7 +55,7 @@ self.numLabel.text = num; UIImage *longBackgroundImage = [UIImage imageNamed:@"user_info_id_beatiful_mark_short"]; - UIEdgeInsets capInsets = UIEdgeInsetsMake(0, 20, 0, 14); + UIEdgeInsets capInsets = UIEdgeInsetsMake(0, 27, 0, 14); UIImage *resizableImage = [longBackgroundImage resizableImageWithCapInsets:capInsets resizingMode:UIImageResizingModeStretch]; self.frameImageView.image = resizableImage; } diff --git a/YuMi/Modules/YMMine/View/SubViews/XPMineHeadView.h b/YuMi/Modules/YMMine/View/SubViews/XPMineHeadView.h index 2f7238cc..bf0822f0 100644 --- a/YuMi/Modules/YMMine/View/SubViews/XPMineHeadView.h +++ b/YuMi/Modules/YMMine/View/SubViews/XPMineHeadView.h @@ -38,7 +38,7 @@ typedef void(^CompletionHandler)(NSMutableAttributedString *); @property (nonatomic, assign) NSInteger visitorUnReadCount; ///当装扮铭牌时,我的页面中不需要显示铭牌标识 -- (void)createNamePlateLevelAttribute:(UserInfoModel *)userInfo complete:(CompletionHandler)complete; +- (void)createNamePlateLevelAttribute:(UserInfoModel *)userInfo;// complete:(CompletionHandler)complete; ///id - (NSMutableAttributedString *)createNamePlateIdLabelAttribute:(UserInfoModel *)userInfo ; @end diff --git a/YuMi/Modules/YMMine/View/SubViews/XPMineHeadView.m b/YuMi/Modules/YMMine/View/SubViews/XPMineHeadView.m index b068582d..98aaa9de 100644 --- a/YuMi/Modules/YMMine/View/SubViews/XPMineHeadView.m +++ b/YuMi/Modules/YMMine/View/SubViews/XPMineHeadView.m @@ -41,6 +41,12 @@ ///显示等级 @property (nonatomic,strong) YYLabel *levelLabel; + +@property (nonatomic,strong) NetImageView *experImageView; +@property (nonatomic,strong) NetImageView *charmImageView; +//@property (nonatomic,strong) NetImageView *nameplateImageView; +//@property (nonatomic,strong) UILabel *nameplateLabel; + ///关注、粉丝的容器 @property (nonatomic,strong) UIStackView *attentionStackView; ///关注 @@ -97,6 +103,8 @@ [_stackView addArrangedSubview:self.nobleEntranceView]; [_stackView addArrangedSubview:self.agencyView]; + [self addSubview:self.experImageView]; + [self addSubview:self.charmImageView]; [self.avatarImageView addSubview:self.reviewView]; UITapGestureRecognizer * tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapAvatarImageView)]; @@ -131,6 +139,20 @@ make.top.mas_equalTo(self.idStackView.mas_bottom).offset(5); }]; + [self.experImageView mas_makeConstraints:^(MASConstraintMaker *make) { + make.leading.mas_equalTo(self.nameStackView); + make.top.mas_equalTo(self.idStackView.mas_bottom).offset(5); + make.width.mas_equalTo(0); + make.height.mas_equalTo(20); + }]; + + [self.charmImageView mas_makeConstraints:^(MASConstraintMaker *make) { + make.leading.mas_equalTo(self.experImageView.mas_trailing).offset(8); + make.top.mas_equalTo(self.idStackView.mas_bottom).offset(5); + make.width.mas_equalTo(0); + make.height.mas_equalTo(20); + }]; + [self.attentionStackView mas_makeConstraints:^(MASConstraintMaker *make) { make.top.mas_equalTo(self.avatarImageView.mas_bottom).mas_offset(16); make.height.mas_equalTo(60); @@ -214,7 +236,7 @@ NetImageConfig *config = [[NetImageConfig alloc]init]; ///先这样吧 config.autoLoad = YES; - NetImageView *imageView = [[NetImageView alloc]initWithUrl:imageUrl config:config]; + NetImageView *imageView = [[NetImageView alloc] initWithUrl:imageUrl config:config]; UIImage* image = imageView.image; if (image) { CGFloat height = image.size.height > 0 ? image.size.height : 1; @@ -320,32 +342,33 @@ attachment.bounds = CGRectMake(0, roundf(font.capHeight - iconImage.size.height)/2.f, iconImage.size.width, iconImage.size.height); attachment.image = iconImage; [textAtt insertAttributedString:[NSMutableAttributedString attributedStringWithAttachment:attachment] atIndex:textAtt.length]; + self.idLabel.attributedText = textAtt; return textAtt; } ///当装扮铭牌时,我的页面中不需要显示铭牌标识 -- (void)createNamePlateLevelAttribute:(UserInfoModel *)userInfo complete:(nonnull CompletionHandler)complete{ +- (void)createNamePlateLevelAttribute:(UserInfoModel *)userInfo {// complete:(nonnull CompletionHandler)complete{ NSMutableAttributedString *attributedString = [[NSMutableAttributedString alloc] init]; if (!userInfo) { - if(complete){ - complete(attributedString); - } +// if(complete){ +// complete(attributedString); +// } return; } -// if(userInfo.isCertified == YES){ -// //主播认证 -// if (userInfo.nameplatePic.length > 0) { -// [self createNameplateAttibuteWithImage:userInfo.nameplatePic]; -// [attributedString appendAttributedString:[self createSpaceAttribute:2]]; -// } -// }else{ -// //主播认证 -// if (userInfo.nameplateWord.length > 0 && userInfo.nameplatePic.length>0) { -// [self createNameplateAttibute:userInfo.nameplateWord image:userInfo.nameplatePic textFont:[UIFont systemFontOfSize:9]]; -// [attributedString appendAttributedString:[self createSpaceAttribute:2]]; -// } -// } + if(userInfo.isCertified == YES){ + //主播认证 + if (userInfo.nameplatePic.length > 0) { + [self createNameplateAttibuteWithImage:userInfo.nameplatePic]; + [attributedString appendAttributedString:[self createSpaceAttribute:2]]; + } + }else{ + //主播认证 + if (userInfo.nameplateWord.length > 0 && userInfo.nameplatePic.length>0) { + [self createNameplateAttibute:userInfo.nameplateWord image:userInfo.nameplatePic textFont:[UIFont systemFontOfSize:9]]; + [attributedString appendAttributedString:[self createSpaceAttribute:2]]; + } + } // userRank 用户级别 if (userInfo.userLevelVo.experUrl) { @@ -359,16 +382,18 @@ [attributedString appendAttributedString:[self createSpaceAttribute:4]]; } - if(complete){ - complete(attributedString); - } +// if(complete){ +// complete(attributedString); +// } + + self.levelLabel.attributedText = attributedString; } #pragma mark - Getters And Setters - (void)setUserInfo:(UserInfoModel *)userInfo { _userInfo = userInfo; if (_userInfo) { - self.idLabel.attributedText = userInfo.idAtt; + self.nameLabel.text = _userInfo.nick.length > 0 ? _userInfo.nick : @""; self.avatarImageView.imageUrl = userInfo.avatar; if (userInfo.isReview) { @@ -384,10 +409,55 @@ self.sexImageView.selected = _userInfo.gender != GenderType_Male; self.sexImageView.titleEdgeInsets = _userInfo.gender != GenderType_Male ? UIEdgeInsetsMake(0, 2, 0, 0):UIEdgeInsetsMake(0, -1, 0, 0); - self.levelLabel.attributedText = _userInfo.levelAtt; +// self.levelLabel.attributedText = _userInfo.levelAtt; self.fansView.number = [NSString stringWithFormat:@"%ld",_userInfo.fansNum]; self.attentionView.number = [NSString stringWithFormat:@"%ld",_userInfo.followNum]; + +// self.nameplateImageView.imageUrl = _userInfo.nameplatePic; + + @kWeakify(self); + dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.25 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ + @kStrongify(self); + @kWeakify(self); + [self.experImageView loadImageWithUrl:self.userInfo.userLevelVo.experUrl completion:^(UIImage * _Nullable image, NSURL * _Nonnull url) { + @kStrongify(self); + self.experImageView.image = image; + CGFloat scale = 0; + if (image) { + CGFloat height = image.size.height > 0 ? image.size.height : 1; + scale = image.size.width / height ; + } + else { + NSURL *imgUrl = [NSURL URLWithString:self.userInfo.userLevelVo.experUrl]; + UIImage *myImage = [UIImage imageWithData:[NSData dataWithContentsOfURL:imgUrl]]; + CGFloat height = myImage.size.height > 0 ? myImage.size.height : 1; + scale = myImage.size.width / height; + } + [self.experImageView mas_updateConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(20 * scale); + }]; + }]; + + [self.charmImageView loadImageWithUrl:self.userInfo.userLevelVo.charmUrl completion:^(UIImage * _Nullable image, NSURL * _Nonnull url) { + @kStrongify(self); + self.charmImageView.image = image; + CGFloat scale = 0; + if (image) { + CGFloat height = image.size.height > 0 ? image.size.height : 1; + scale = image.size.width / height ; + } + else { + NSURL *imgUrl = [NSURL URLWithString:self.userInfo.userLevelVo.experUrl]; + UIImage *myImage = [UIImage imageWithData:[NSData dataWithContentsOfURL:imgUrl]]; + CGFloat height = myImage.size.height > 0 ? myImage.size.height : 1; + scale = myImage.size.width / height; + } + [self.charmImageView mas_updateConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(20 * scale); + }]; + }]; + }); } } @@ -486,6 +556,22 @@ return _levelLabel; } +- (NetImageView *)experImageView { + if (!_experImageView) { + _experImageView = [[NetImageView alloc] init]; + _experImageView.contentMode = UIViewContentModeScaleAspectFit; + } + return _experImageView; +} + +- (NetImageView *)charmImageView { + if (!_charmImageView) { + _charmImageView = [[NetImageView alloc] init]; + _charmImageView.contentMode = UIViewContentModeScaleAspectFit; + } + return _charmImageView; +} + - (UIStackView *)attentionStackView { if (!_attentionStackView) { _attentionStackView = [[UIStackView alloc] init]; diff --git a/YuMi/Modules/YMMine/View/XPMineViewController.m b/YuMi/Modules/YMMine/View/XPMineViewController.m index 4fcb1272..207d128e 100644 --- a/YuMi/Modules/YMMine/View/XPMineViewController.m +++ b/YuMi/Modules/YMMine/View/XPMineViewController.m @@ -125,9 +125,6 @@ UIKIT_EXTERN NSString *kRequestTicket; if([AccountInfoStorage instance].isRequestTicket == NO) { [self getDataInfo]; } - if (!self.userInfo) { - [self showLoading]; - } } - (void)viewDidAppear:(BOOL)animated { @@ -135,6 +132,9 @@ UIKIT_EXTERN NSString *kRequestTicket; } -(void)getDataInfo{ + if (self.functionArray.count < 2) { + [self.presenter getPersonItemList]; + } [self.presenter getUserInfo]; } @@ -629,12 +629,11 @@ UIKIT_EXTERN NSString *kRequestTicket; - (void)onGetUserInfoSuccess:(UserInfoModel *)userInfo { ///防止重新注册时,获取到用户信息不全,调用接口时401 + [self hideHUD]; if (!userInfo.isBindPhone && [ClientConfig shareConfig].iOSPhoneBind) { - [self hideHUD]; return; } if (userInfo.nick == nil || userInfo.avatar == nil ) { - [self hideHUD]; return; } @@ -642,27 +641,17 @@ UIKIT_EXTERN NSString *kRequestTicket; self.userInfo = userInfo; @kWeakify(self); - userInfo.idAtt = [self.headView createNamePlateIdLabelAttribute:userInfo]; + [self.tableView reloadData]; + [self.headView createNamePlateIdLabelAttribute:userInfo]; + self.headView.userInfo = userInfo; dispatch_async(dispatch_get_global_queue(0, 0), ^{ @kStrongify(self); [self.presenter getClanDetailInfo]; [self.presenter getUserWalletInfo]; - [self.presenter getPersonItemList]; - // [self.presenter getMineBannerList]; [self.presenter getNobleInfo]; }); - - dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.25 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ - [self.headView createNamePlateLevelAttribute:userInfo complete:^(NSMutableAttributedString *textAtt) { - @kStrongify(self); - dispatch_async(dispatch_get_main_queue(), ^{ - userInfo.levelAtt = textAtt; - self.headView.userInfo = userInfo; - }); - }]; - }); } - (void)getUserWalletInfo:(WalletInfoModel *)balanceInfo{ diff --git a/YuMi/Modules/YMRoom/View/MessageContainerView/Tool/XPRoomMessageParser.m b/YuMi/Modules/YMRoom/View/MessageContainerView/Tool/XPRoomMessageParser.m index 513d848e..8ce72bc0 100644 --- a/YuMi/Modules/YMRoom/View/MessageContainerView/Tool/XPRoomMessageParser.m +++ b/YuMi/Modules/YMRoom/View/MessageContainerView/Tool/XPRoomMessageParser.m @@ -1100,7 +1100,6 @@ giftInfo = [[XPGiftStorage shareStorage] findGiftInfo:info.giftId]; } - ///官方新用户 [attribute appendAttributedString:[self createOfficalAndNewuserAttribute:sendInfo.defUser newUser:sendInfo.newUser fromSayHelloChannel:sendInfo.fromSayHelloChannel]]; //nick diff --git a/YuMi/Modules/YMRoom/View/RoomGame/View/SubView/MSRoomGameView.m b/YuMi/Modules/YMRoom/View/RoomGame/View/SubView/MSRoomGameView.m index 33c34f9f..2063e150 100644 --- a/YuMi/Modules/YMRoom/View/RoomGame/View/SubView/MSRoomGameView.m +++ b/YuMi/Modules/YMRoom/View/RoomGame/View/SubView/MSRoomGameView.m @@ -237,7 +237,7 @@ NSMutableDictionary *dict = [[NSMutableDictionary alloc] init]; dict[@"ret_code"] = @(0); dict[@"ret_msg"] = @"return form APP onGetGameCfg"; - + dict[@"ui"] = @{ @"join_btn" : @{@"custom": @(YES), @"hide": @(YES)},//加入游戏 @"start_btn" : @{@"custom": @(YES), @"hide": @(YES)},//开始游戏 @@ -274,8 +274,6 @@ if(self.delegate && [self.delegate respondsToSelector:@selector(getGameRsultsWithList:)]){ [self.delegate getGameRsultsWithList:list]; } - - }else if ([state isEqualToString:MG_COMMON_PUBLIC_MESSAGE]) { NSLog(@"ISudFSMMG:onGameStateChange:游戏->APP:公屏消息"); } else if ([state isEqualToString:MG_COMMON_KEY_WORD_TO_HIT]) {