From 0899930a3fc309b5ee7c42ac25e1fe035cacfd62 Mon Sep 17 00:00:00 2001 From: eggmanQQQ <3671373519@qq.com> Date: Tue, 23 Jul 2024 17:24:46 +0800 Subject: [PATCH] =?UTF-8?q?#1419=201.=20=E5=85=A5=E5=8F=A3=E4=BC=98?= =?UTF-8?q?=E5=8C=96=E5=AE=8C=E6=88=90=E5=9F=BA=E6=9C=AC=E8=B0=83=E6=95=B4?= =?UTF-8?q?=202.=20=E4=BC=98=E5=8C=96=E7=A4=BC=E7=89=A9=E9=9D=A2=E6=9D=BF?= =?UTF-8?q?=E5=8A=A0=E8=BD=BD=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Podfile | 1 + YuMi.xcodeproj/project.pbxproj | 11 +++ .../Contents.json | 1 - .../ms_room_game_button@2x.png | Bin 8184 -> 0 bytes .../ms_room_game_button@3x.png | Bin 16995 -> 24113 bytes .../ms_room_menu_game.imageset/Contents.json | 1 - .../ms_room_menu_game@2x.png | Bin 603 -> 0 bytes .../room_menu_more.imageset/Contents.json | 1 - .../room_menu_more@2x.png | Bin 583 -> 0 bytes .../room_menu_more_red.imageset/Contents.json | 1 - .../room_menu_more_red@2x.png | Bin 2010 -> 0 bytes .../room_menu_play.imageset/Contents.json | 21 +++++ .../room_menu_play@3x.png | Bin 0 -> 4021 bytes .../YMRoom/Presenter/XPRoomPresenter.m | 18 ++-- .../XPRoomActivityContainerView.m | 30 +++--- .../View/MenuContainerView/MSRoomMenuGameVC.h | 3 +- .../View/MenuContainerView/MSRoomMenuGameVC.m | 23 +++-- .../MenuContainerView/MSRoomMenuGameView.m | 22 ++++- .../MenuContainerView/Model/XPRoomMenuItem.h | 3 +- .../XPRoomMenuContainerView.m | 87 +++++++++++------- .../SendGiftView/Presenter/XPGiftPresenter.m | 20 ++-- 21 files changed, 165 insertions(+), 78 deletions(-) delete mode 100644 YuMi/Assets.xcassets/chat/ms_room_game_button.imageset/ms_room_game_button@2x.png delete mode 100644 YuMi/Assets.xcassets/yna/Menu/ms_room_menu_game.imageset/ms_room_menu_game@2x.png delete mode 100644 YuMi/Assets.xcassets/yna/Menu/room_menu_more.imageset/room_menu_more@2x.png delete mode 100644 YuMi/Assets.xcassets/yna/Menu/room_menu_more_red.imageset/room_menu_more_red@2x.png create mode 100644 YuMi/Assets.xcassets/yna/Menu/room_menu_play.imageset/Contents.json create mode 100644 YuMi/Assets.xcassets/yna/Menu/room_menu_play.imageset/room_menu_play@3x.png diff --git a/Podfile b/Podfile index 2708456d..05803b5e 100644 --- a/Podfile +++ b/Podfile @@ -19,6 +19,7 @@ target 'YuMi' do pod 'MJExtension' #图片加载 pod 'SDWebImage' + # pod 'SDWebImageWebPCoder' 用于加载 webP pod 'FLAnimatedImage' pod 'SDWebImageFLPlugin' # 对FLAnimatedImage和SDWebImage的桥接 pod 'AFNetworking' diff --git a/YuMi.xcodeproj/project.pbxproj b/YuMi.xcodeproj/project.pbxproj index 5b74d339..f4174bf9 100644 --- a/YuMi.xcodeproj/project.pbxproj +++ b/YuMi.xcodeproj/project.pbxproj @@ -12927,6 +12927,17 @@ "$(PROJECT_DIR)/YuMi/Tools/TencentOpenApiSDK", ); GCC_PREFIX_HEADER = YuMi/Structure/PrefixHeader.pch; + GCC_PREPROCESSOR_DEFINITIONS = ( + "$(inherited)", + "SD_WEBP=1", + "COCOAPODS=1", + "$(inherited)", + "GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS=1", + "$(inherited)", + "PB_FIELD_32BIT=1", + "PB_NO_PACKED_STRUCTS=1", + "PB_ENABLE_MALLOC=1", + ); INFOPLIST_FILE = YuMi/Info.plist; IPHONEOS_DEPLOYMENT_TARGET = 11.0; LD_RUNPATH_SEARCH_PATHS = ( diff --git a/YuMi/Assets.xcassets/chat/ms_room_game_button.imageset/Contents.json b/YuMi/Assets.xcassets/chat/ms_room_game_button.imageset/Contents.json index 1df64416..4c86f5e6 100644 --- a/YuMi/Assets.xcassets/chat/ms_room_game_button.imageset/Contents.json +++ b/YuMi/Assets.xcassets/chat/ms_room_game_button.imageset/Contents.json @@ -5,7 +5,6 @@ "scale" : "1x" }, { - "filename" : "ms_room_game_button@2x.png", "idiom" : "universal", "scale" : "2x" }, diff --git a/YuMi/Assets.xcassets/chat/ms_room_game_button.imageset/ms_room_game_button@2x.png b/YuMi/Assets.xcassets/chat/ms_room_game_button.imageset/ms_room_game_button@2x.png deleted file mode 100644 index db614274048e081073effd90981895b33ae461bf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8184 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 A_5c6? literal 16995 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 diff --git a/YuMi/Assets.xcassets/yna/Menu/room_menu_more.imageset/Contents.json b/YuMi/Assets.xcassets/yna/Menu/room_menu_more.imageset/Contents.json index 9771e355..e0d835c1 100644 --- a/YuMi/Assets.xcassets/yna/Menu/room_menu_more.imageset/Contents.json +++ b/YuMi/Assets.xcassets/yna/Menu/room_menu_more.imageset/Contents.json @@ -5,7 +5,6 @@ "scale" : "1x" }, { - "filename" : "room_menu_more@2x.png", "idiom" : "universal", "scale" : "2x" }, diff --git a/YuMi/Assets.xcassets/yna/Menu/room_menu_more.imageset/room_menu_more@2x.png b/YuMi/Assets.xcassets/yna/Menu/room_menu_more.imageset/room_menu_more@2x.png deleted file mode 100644 index 5c3261d055a612dba761f76555b2c7df88c32a1d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 583 zcmV-N0=WH&P)_{{H^w=jZM1?f3Wh-{0TX*4EC>&c(&Wz`($~yu5{l zg=S`E`1tt!{r&m*`SkSk?(XjS`T6|JNKB6)8@jMApt75}&Y7jP1}@Rz_7?(=4qkW%BRjP^F1Ut0SnXD67hRLL->M zyQrdFsZG>q`XFucsG$Qg3}wL{44N2Oz)~bjSz>t>2edR`p6ys*li+X!CBX}EDk#Lg@(1?HU+~k3e)Y7$Ootkbpsfj-si=kL z2gh^5qUo6#9D;Er7?Og~EM5qTLspXIN4|0uvP!UC3YJ>IDlJ&xMb`%TWkqmB`UBHx V9A{K}xpDvi002ovPDHLkV1ml48leCH diff --git a/YuMi/Assets.xcassets/yna/Menu/room_menu_more_red.imageset/Contents.json b/YuMi/Assets.xcassets/yna/Menu/room_menu_more_red.imageset/Contents.json index 510ca339..ccb22a2b 100644 --- a/YuMi/Assets.xcassets/yna/Menu/room_menu_more_red.imageset/Contents.json +++ b/YuMi/Assets.xcassets/yna/Menu/room_menu_more_red.imageset/Contents.json @@ -5,7 +5,6 @@ "scale" : "1x" }, { - "filename" : "room_menu_more_red@2x.png", "idiom" : "universal", "scale" : "2x" }, diff --git a/YuMi/Assets.xcassets/yna/Menu/room_menu_more_red.imageset/room_menu_more_red@2x.png b/YuMi/Assets.xcassets/yna/Menu/room_menu_more_red.imageset/room_menu_more_red@2x.png deleted file mode 100644 index d68fe9b4d6c7f7e2402616323ef0c6ab0949d52c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2010 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 b7NGwFH<6(^!rp}Y00000NkvXXu0mjf#QLeZ literal 0 HcmV?d00001 diff --git a/YuMi/Modules/YMRoom/Presenter/XPRoomPresenter.m b/YuMi/Modules/YMRoom/Presenter/XPRoomPresenter.m index 6a24c014..3edcce01 100644 --- a/YuMi/Modules/YMRoom/Presenter/XPRoomPresenter.m +++ b/YuMi/Modules/YMRoom/Presenter/XPRoomPresenter.m @@ -184,14 +184,20 @@ /// @param roomUid 房主的uid 获取房间专属礼物 - (void)getNormalGiftList:(NSString *)roomUid { ///先不请求接口 从缓存中获取 - NSArray *giftCacheArray = [[XPGiftStorage shareStorage] getGiftDatasource:roomUid]; - if (giftCacheArray.count == 0) { - [Api requestNormalGiftList:^(BaseModel * _Nullable data, NSInteger code, NSString * _Nullable msg) { - if (code == 200) { + CGFloat delayDuration = 0.0; + NSArray *giftCacheArray = [[XPGiftStorage shareStorage] getGiftDatasource:roomUid]; + if (giftCacheArray.count > 0) { + delayDuration = 0.25; + } + dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(delayDuration * NSEC_PER_SEC)), dispatch_get_global_queue(0, 0), ^{ + @kWeakify(self); + [Api requestNormalGiftList:[self createHttpCompletion:^(BaseModel * _Nonnull data) { + @kStrongify(self); + if (data.data) { [[XPGiftStorage shareStorage] cacheWith:data.data inRoom:roomUid]; } - } roomUid:roomUid]; - } + }fail:^(NSInteger code, NSString * _Nullable msg) {}] roomUid:roomUid]; + }); } /// 上报用户进房 diff --git a/YuMi/Modules/YMRoom/View/ActivityContainerView/XPRoomActivityContainerView.m b/YuMi/Modules/YMRoom/View/ActivityContainerView/XPRoomActivityContainerView.m index e04bae11..8b7cc29c 100644 --- a/YuMi/Modules/YMRoom/View/ActivityContainerView/XPRoomActivityContainerView.m +++ b/YuMi/Modules/YMRoom/View/ActivityContainerView/XPRoomActivityContainerView.m @@ -55,7 +55,7 @@ UIKIT_EXTERN NSString *kShowFirstRechargeView; @property(nonatomic,strong) PIRoomEnterRedPacketView *redPacketView; ///游戏菜单按钮 -@property(nonatomic, strong) UIButton *gameMenuButton; +@property(nonatomic, strong) UIButton *gambleMenuButton; ///游戏菜单按钮 @property(nonatomic, strong) UIButton *pkMenuButton; @@ -101,7 +101,7 @@ UIKIT_EXTERN NSString *kShowFirstRechargeView; [self.stackView addArrangedSubview:self.redPacketView]; [self.stackView addArrangedSubview:self.joinDatingView]; [self.stackView addArrangedSubview:self.pkMenuButton]; - [self.stackView addArrangedSubview:self.gameMenuButton]; + [self.stackView addArrangedSubview:self.gambleMenuButton]; } - (void)initSubViewConstraints { @@ -123,7 +123,7 @@ UIKIT_EXTERN NSString *kShowFirstRechargeView; make.size.mas_equalTo(CGSizeMake(76, 76)); }]; - [self.gameMenuButton mas_makeConstraints:^(MASConstraintMaker *make) { + [self.gambleMenuButton mas_makeConstraints:^(MASConstraintMaker *make) { make.leading.mas_equalTo(0); make.size.mas_equalTo(CGSizeMake(76, 76)); }]; @@ -227,10 +227,10 @@ UIKIT_EXTERN NSString *kShowFirstRechargeView; - (void)onRoomUpdate { RoomInfoModel * roomInfo = self.hostDelegate.getRoomInfo; if (roomInfo.type == RoomType_Anchor || roomInfo.roomModeType == RoomModeType_Open_Blind) { - self.gameMenuButton.hidden = YES; + self.gambleMenuButton.hidden = YES; self.pkMenuButton.hidden = YES; } else { - self.gameMenuButton.hidden = NO; + self.gambleMenuButton.hidden = NO; self.pkMenuButton.hidden = NO; } @@ -243,21 +243,21 @@ UIKIT_EXTERN NSString *kShowFirstRechargeView; self.redPacketView.type = roomInfo.type; if (roomInfo.type == RoomType_MiniGame) { self.redPacketView.hidden = YES; - [self.gameMenuButton removeFromSuperview]; + [self.gambleMenuButton removeFromSuperview]; [self.pi_cycleScrollView removeFromSuperview]; - [self.stackView insertArrangedSubview:self.gameMenuButton atIndex:0]; + [self.stackView insertArrangedSubview:self.gambleMenuButton atIndex:0]; [self.stackView addArrangedSubview:self.pi_cycleScrollView]; - [self.gameMenuButton bringSubviewToFront:self.stackView]; + [self.gambleMenuButton bringSubviewToFront:self.stackView]; if (self.isLoadActivity) { [self configLittleGameActivity]; } else { [self requestActivityList]; } } else { - [self.gameMenuButton removeFromSuperview]; + [self.gambleMenuButton removeFromSuperview]; [self.pi_cycleScrollView removeFromSuperview]; [self.stackView insertArrangedSubview:self.pi_cycleScrollView atIndex:0]; - [self.stackView addArrangedSubview:self.gameMenuButton]; + [self.stackView addArrangedSubview:self.gambleMenuButton]; self.redPacketView.redPacketList = self.redPacketList; NSMutableArray *picArray = [NSMutableArray array]; for (ActivityInfoModel *model in self.activityList) { @@ -546,7 +546,7 @@ UIKIT_EXTERN NSString *kShowFirstRechargeView; } - (void)didTapGameMenuButton { - MSRoomMenuGameVC *vc = [[MSRoomMenuGameVC alloc] initWithDelegate:self.hostDelegate roomMenuType:MSRoomMenuTypeLittleGame]; + MSRoomMenuGameVC *vc = [[MSRoomMenuGameVC alloc] initWithDelegate:self.hostDelegate roomMenuType:MSRoomMenuTypeGame]; vc.modalPresentationStyle = UIModalPresentationOverFullScreen; [self.hostDelegate.getCurrentNav presentViewController:vc animated:YES completion:nil]; } @@ -662,15 +662,15 @@ UIKIT_EXTERN NSString *kShowFirstRechargeView; return _redPacketView; } -- (UIButton *)gameMenuButton { - if (!_gameMenuButton) { +- (UIButton *)gambleMenuButton { + if (!_gambleMenuButton) { UIButton *b = [UIButton buttonWithType:UIButtonTypeCustom]; [b setImage:[UIImage imageNamed:@"ms_room_game_button"] forState:UIControlStateNormal]; [b addTarget:self action:@selector(didTapGameMenuButton) forControlEvents:UIControlEventTouchUpInside]; b.hidden = YES; - _gameMenuButton = b; + _gambleMenuButton = b; } - return _gameMenuButton; + return _gambleMenuButton; } - (UIButton *)pkMenuButton { diff --git a/YuMi/Modules/YMRoom/View/MenuContainerView/MSRoomMenuGameVC.h b/YuMi/Modules/YMRoom/View/MenuContainerView/MSRoomMenuGameVC.h index a6e85839..e6c9aa53 100644 --- a/YuMi/Modules/YMRoom/View/MenuContainerView/MSRoomMenuGameVC.h +++ b/YuMi/Modules/YMRoom/View/MenuContainerView/MSRoomMenuGameVC.h @@ -11,8 +11,9 @@ NS_ASSUME_NONNULL_BEGIN typedef NS_ENUM(NSInteger, MSRoomMenuType) { + MSRoomMenuTypePK, // 只有 PK MSRoomMenuTypeGame, // 玩法 - MSRoomMenuTypeLittleGame, // 小游戏 + MSRoomMenuTypeLittleGame, // 小游戏, 百顺的 }; diff --git a/YuMi/Modules/YMRoom/View/MenuContainerView/MSRoomMenuGameVC.m b/YuMi/Modules/YMRoom/View/MenuContainerView/MSRoomMenuGameVC.m index 736664c7..57a576af 100644 --- a/YuMi/Modules/YMRoom/View/MenuContainerView/MSRoomMenuGameVC.m +++ b/YuMi/Modules/YMRoom/View/MenuContainerView/MSRoomMenuGameVC.m @@ -66,6 +66,9 @@ - (void)loadMenuData { switch (self.type) { + case MSRoomMenuTypePK: + [self updateGamePlayList:@[]]; + break; case MSRoomMenuTypeGame: [self getGameData]; break; @@ -78,11 +81,12 @@ } -(void)getGameData{ - NSMutableArray *resourceList = [self.hostDelegate getPlayList]; - if(resourceList.count > 0){ - [self updateGamePlayList:resourceList]; - return; - } +// NSMutableArray *resourceList = [self.hostDelegate getPlayList]; +// if(resourceList.count > 0){ +// self.gameView.playList = resourceList; +//// [self updateGamePlayList:resourceList]; +// return; +// } NSString * roomId = [NSString stringWithFormat:@"%ld", self.hostDelegate.getRoomInfo.roomId]; @kWeakify(self); @@ -90,7 +94,14 @@ if (code == 200) { @kStrongify(self); NSArray * array = [ActivityInfoModel modelsWithArray:data.data]; - [self updateGamePlayList:array]; +// NSMutableArray *tA = [array mutableCopy]; +// [tA addObjectsFromArray:array]; +// [tA addObjectsFromArray:array]; +// [tA addObjectsFromArray:array]; +// [tA addObjectsFromArray:array]; + + self.gameView.playList = [array mutableCopy]; +// [self updateGamePlayList:array]; } } roomId:roomId]; } diff --git a/YuMi/Modules/YMRoom/View/MenuContainerView/MSRoomMenuGameView.m b/YuMi/Modules/YMRoom/View/MenuContainerView/MSRoomMenuGameView.m index f8967ebb..76862171 100644 --- a/YuMi/Modules/YMRoom/View/MenuContainerView/MSRoomMenuGameView.m +++ b/YuMi/Modules/YMRoom/View/MenuContainerView/MSRoomMenuGameView.m @@ -16,12 +16,18 @@ static const NSInteger kItemsPerRow = 5; @property(nonatomic,strong) UIButton *backBtn; @property(nonatomic,strong) UIView *ms_bgView; @property(nonatomic,strong) UICollectionView *collectionView; + +@property (nonatomic, assign) CGFloat itemHeight; + @end @implementation MSRoomMenuGameView -(instancetype)initWithFrame:(CGRect)frame{ self = [super initWithFrame:frame]; if(self){ + + self.itemHeight = kGetScaleWidth(80); + [self installUI]; [self installConstraints]; } @@ -69,9 +75,19 @@ static const NSInteger kItemsPerRow = 5; } - (void)updateViewHeightWithItemCount:(NSInteger)count { - NSInteger lineNum = (count + kItemsPerRow - 1)/kItemsPerRow; + NSInteger lineNum = MIN(3, (count + kItemsPerRow - 1)/kItemsPerRow); + + if (lineNum == 1) { + self.itemHeight = kGetScaleWidth(100); + } + + CGFloat calHeight = kGetScaleWidth(80); + if (lineNum < 3) { + calHeight = kGetScaleWidth(100); + } + CGFloat height = 20 + 56 * lineNum + 44 * (lineNum - 1) + 70; - height = kGetScaleWidth(100) * lineNum; + height = calHeight * lineNum; // [_ms_bgView setCornerWithLeftTopCorner:kGetScaleWidth(12) rightTopCorner:kGetScaleWidth(12) bottomLeftCorner:0 bottomRightCorner:0 size:CGSizeMake(KScreenWidth, height-48)]; [self.ms_bgView mas_updateConstraints:^(MASConstraintMaker *make) { make.height.mas_equalTo(kGetScaleWidth(height + 12)); @@ -88,7 +104,7 @@ static const NSInteger kItemsPerRow = 5; #pragma mark- UICollectionViewDelegate,UICollectionViewDataSource,UICollectionViewDelegateFlowLayout - (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath{ CGFloat width = (KScreenWidth-kGetScaleWidth(6))/5; - return [self countOfCurrentType] > 0 ? CGSizeMake(width, kGetScaleWidth(100)): CGSizeMake(KScreenWidth, kGetScaleWidth(200)); + return [self countOfCurrentType] > 0 ? CGSizeMake(width, self.itemHeight): CGSizeMake(KScreenWidth, kGetScaleWidth(200)); } - (UIEdgeInsets)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout insetForSectionAtIndex:(NSInteger)section{ return [self countOfCurrentType] > 0 ? UIEdgeInsetsMake(0, kGetScaleWidth(3), 0, kGetScaleWidth(3)): UIEdgeInsetsMake(0, 0, 0, 0); diff --git a/YuMi/Modules/YMRoom/View/MenuContainerView/Model/XPRoomMenuItem.h b/YuMi/Modules/YMRoom/View/MenuContainerView/Model/XPRoomMenuItem.h index ad4fa5b4..f2fc4e3c 100644 --- a/YuMi/Modules/YMRoom/View/MenuContainerView/Model/XPRoomMenuItem.h +++ b/YuMi/Modules/YMRoom/View/MenuContainerView/Model/XPRoomMenuItem.h @@ -19,7 +19,8 @@ typedef NS_ENUM(NSInteger, XPRoomMenuItemType) { XPRoomMenuItemType_ArrangeMic,///排麦 XPRoomMenuItemType_Gift,///礼物 XPRoomMenuItemType_Noble,///VIP - MSRoomMenuItemType_Game,///VIP + XPRoomMenuItemType_PK,/// PK 菜单 + MSRoomMenuItemType_BAISHUN_GAME,///显示百顺游戏 }; @interface XPRoomMenuItem : NSObject diff --git a/YuMi/Modules/YMRoom/View/MenuContainerView/XPRoomMenuContainerView.m b/YuMi/Modules/YMRoom/View/MenuContainerView/XPRoomMenuContainerView.m index fe25d77a..e9f8991a 100644 --- a/YuMi/Modules/YMRoom/View/MenuContainerView/XPRoomMenuContainerView.m +++ b/YuMi/Modules/YMRoom/View/MenuContainerView/XPRoomMenuContainerView.m @@ -51,6 +51,8 @@ @property (nonatomic,strong) UIButton *messageButton; ///更多 @property (nonatomic,strong) UIButton *moreButton; +/// PK 入口 +@property (nonatomic,strong) UIButton *pkButton; ///礼物 @property (nonatomic,strong) UIButton *giftButton; @property (nonatomic, strong) SVGAImageView *svgDisplayView; @@ -59,7 +61,7 @@ @property (nonatomic,strong) UIButton *arrangeMicButton; ///游戏、活动 -@property(nonatomic,strong) UIButton *gameButton; +@property(nonatomic,strong) UIButton *baiShunGameButton; ///输入框 @property (nonatomic,strong) XPRoomSendTextView *inputTextView; @@ -199,14 +201,21 @@ [self.delegate.getCurrentNav pushViewController:nobleVC animated:YES]; } break; - case MSRoomMenuItemType_Game: + case MSRoomMenuItemType_BAISHUN_GAME: { - MSRoomMenuGameVC *vc = [[MSRoomMenuGameVC alloc]initWithDelegate:self.delegate roomMenuType:MSRoomMenuTypeGame]; + MSRoomMenuGameVC *vc = [[MSRoomMenuGameVC alloc]initWithDelegate:self.delegate roomMenuType:MSRoomMenuTypeLittleGame]; vc.modalPresentationStyle = UIModalPresentationOverFullScreen; [self.delegate.getCurrentNav presentViewController:vc animated:YES completion:nil]; break; } - + case XPRoomMenuItemType_PK: + { + MSRoomMenuGameVC *vc = [[MSRoomMenuGameVC alloc]initWithDelegate:self.delegate roomMenuType:MSRoomMenuTypePK]; + vc.modalPresentationStyle = UIModalPresentationOverFullScreen; + [self.delegate.getCurrentNav presentViewController:vc animated:YES completion:nil]; + break; + } + default: break; } @@ -227,20 +236,21 @@ #pragma mark - Private Method - (void)initSubViews { + [self addSubview:self.inputButton]; [self addSubview:self.scrollView]; - [self addSubview:self.gameButton]; [self addSubview:self.svgDisplayView]; [self addSubview:self.giftButton]; [self.scrollView addSubview:self.stackView]; - - [self.stackView addArrangedSubview:self.inputButton]; + [self.stackView addArrangedSubview:self.micButton]; [self.stackView addArrangedSubview:self.voiceButton]; [self.stackView addArrangedSubview:self.faceButton]; [self.stackView addArrangedSubview:self.arrangeMicButton]; [self.stackView addArrangedSubview:self.messageButton]; [self.stackView addArrangedSubview:self.moreButton]; + [self.stackView addArrangedSubview:self.baiShunGameButton]; + [self.stackView addArrangedSubview:self.pkButton]; self.backgroundColor = UIColorRGBAlpha(0xFFFFFF, 0.2); CAShapeLayer * layer = [CAShapeLayer layer]; @@ -270,8 +280,8 @@ - (void)initSubViewConstraints { [self.scrollView mas_makeConstraints:^(MASConstraintMaker *make) { - make.leading.mas_equalTo(self).offset(15); - make.trailing.mas_equalTo(self.gameButton.mas_leading).offset(-11); + make.leading.mas_equalTo(self.inputButton.mas_trailing).offset(15); + make.trailing.mas_equalTo(self.giftButton.mas_leading).offset(-11); make.top.mas_equalTo(self).offset(16); make.height.mas_equalTo(29); }]; @@ -280,8 +290,9 @@ make.top.bottom.leading.trailing.height.mas_equalTo(self.scrollView); }]; - [self.inputButton mas_makeConstraints:^(MASConstraintMaker *make) { + [self.inputButton mas_makeConstraints:^(MASConstraintMaker *make) { make.size.mas_equalTo(CGSizeMake(90, 28)); + make.left.top.mas_equalTo(16); }]; [self.svgDisplayView mas_makeConstraints:^(MASConstraintMaker *make) { make.centerY.mas_equalTo(self.scrollView); @@ -291,11 +302,6 @@ [self.giftButton mas_makeConstraints:^(MASConstraintMaker *make) { make.edges.equalTo(self.svgDisplayView); }]; - [self.gameButton mas_makeConstraints:^(MASConstraintMaker *make) { - make.centerY.mas_equalTo(self.scrollView); - make.trailing.equalTo(self.svgDisplayView.mas_leading).mas_offset(-11); - make.size.mas_equalTo(CGSizeMake(29, 29)); - }]; } - (NSArray *)configGiftUsers:(NSMutableDictionary *)queue { @@ -391,16 +397,14 @@ - (void)onRoomUpdate { RoomInfoModel * roomInfo = self.delegate.getRoomInfo; -// UserInfoModel * userInfo = self.delegate.getUserInfo; - -// if (userInfo.isFirstCharge) { -// [self.giftButton setImage:[UIImage getLanguageImage:@"room_menu_gift_first_recharge"] forState:UIControlStateNormal]; -// [self.giftButton setImage:[UIImage getLanguageImage:@"room_menu_gift_first_recharge"] forState:UIControlStateSelected]; -// } else { - [self.giftButton setImage:[UIImage imageNamed:@"room_menu_gift"] forState:UIControlStateNormal]; - [self.giftButton setImage:[UIImage imageNamed:@"room_menu_gift"] forState:UIControlStateSelected]; -// } - + + [self.giftButton setImage:[UIImage imageNamed:@"room_menu_gift"] forState:UIControlStateNormal]; + [self.giftButton setImage:[UIImage imageNamed:@"room_menu_gift"] forState:UIControlStateSelected]; + +#if RELEASE + self.gameButton.hidden = self.delegate.getUserInfo.uid != roomInfo.uid; +#endif + self.arrangeMicButton.hidden = roomInfo.roomModeType != RoomModeType_Open_Micro_Mode; if (roomInfo.roomModeType == RoomModeType_Open_Blind || roomInfo.roomModeType == RoomModeType_Open_PK_Mode || roomInfo.roomModeType == RoomModeType_Open_Micro_Mode) { NIMChatroomMembersByIdsRequest *request = [[NIMChatroomMembersByIdsRequest alloc]init]; @@ -408,7 +412,9 @@ if([AccountInfoStorage instance].getUid != nil){ request.userIds = @[[AccountInfoStorage instance].getUid]; } + @kWeakify(self); [[NIMSDK sharedSDK].chatroomManager fetchChatroomMembersByIds:request completion:^(NSError * _Nullable error, NSArray * _Nullable members) { + @kStrongify(self); if (error == nil) { NIMChatroomMember * member = members.firstObject; if (member.type == NIMChatroomMemberTypeCreator || member.type == NIMChatroomMemberTypeManager) { @@ -432,7 +438,9 @@ NIMChatroomMembersByIdsRequest *request = [[NIMChatroomMembersByIdsRequest alloc]init]; request.roomId = [NSString stringWithFormat:@"%ld", self.delegate.getRoomInfo.roomId]; request.userIds = @[[AccountInfoStorage instance].getUid]; + @kWeakify(self); [[NIMSDK sharedSDK].chatroomManager fetchChatroomMembersByIds:request completion:^(NSError * _Nullable error, NSArray * _Nullable members) { + @kStrongify(self); NIMChatroomMember * member; if (error == nil) { member = members.firstObject; @@ -588,6 +596,17 @@ return _moreButton; } +- (UIButton *)pkButton { + if (!_pkButton) { + _pkButton = [UIButton buttonWithType:UIButtonTypeCustom]; + _pkButton.imageView.contentMode = UIViewContentModeScaleAspectFit; + _pkButton.tag = XPRoomMenuItemType_PK; + [_pkButton setImage:[UIImage imageNamed:@"ms_room_menu_game"] forState:UIControlStateNormal]; + [_pkButton addTarget:self action:@selector(menuButtonAction:) forControlEvents:UIControlEventTouchUpInside]; + } + return _pkButton; +} + - (UIButton *)giftButton { if (!_giftButton) { @@ -616,7 +635,7 @@ if (!_stackView) { _stackView = [[UIStackView alloc] init]; _stackView.axis = UILayoutConstraintAxisHorizontal; - _stackView.distribution = UIStackViewDistributionFill; + _stackView.distribution = UIStackViewDistributionFillEqually; _stackView.alignment = UIStackViewAlignmentCenter; _stackView.spacing = 11; } @@ -651,14 +670,14 @@ } return _miniMessageView; } -- (UIButton *)gameButton{ - if(!_gameButton){ - _gameButton = [UIButton new]; - [_gameButton setImage:[UIImage imageNamed:@"ms_room_menu_game"] forState:UIControlStateNormal]; - [_gameButton setImage:[UIImage imageNamed:@"ms_room_menu_game"] forState:UIControlStateSelected]; - _gameButton.tag = MSRoomMenuItemType_Game; - [_gameButton addTarget:self action:@selector(menuButtonAction:) forControlEvents:UIControlEventTouchUpInside]; +- (UIButton *)baiShunGameButton{ + if(!_baiShunGameButton){ + _baiShunGameButton = [UIButton new]; + [_baiShunGameButton setImage:[UIImage imageNamed:@"room_menu_play"] forState:UIControlStateNormal]; + [_baiShunGameButton setImage:[UIImage imageNamed:@"room_menu_play"] forState:UIControlStateSelected]; + _baiShunGameButton.tag = MSRoomMenuItemType_BAISHUN_GAME; + [_baiShunGameButton addTarget:self action:@selector(menuButtonAction:) forControlEvents:UIControlEventTouchUpInside]; } - return _gameButton; + return _baiShunGameButton; } @end diff --git a/YuMi/Modules/YMRoom/View/SendGiftView/Presenter/XPGiftPresenter.m b/YuMi/Modules/YMRoom/View/SendGiftView/Presenter/XPGiftPresenter.m index f38a274f..3866f6b0 100644 --- a/YuMi/Modules/YMRoom/View/SendGiftView/Presenter/XPGiftPresenter.m +++ b/YuMi/Modules/YMRoom/View/SendGiftView/Presenter/XPGiftPresenter.m @@ -53,18 +53,22 @@ /// @param roomUid 房主的uid 获取房间专属礼物 - (void)getNormalGiftList:(NSString *)roomUid { ///先不请求接口 从缓存中获取 + CGFloat delayDuration = 0.0; NSArray * arrary = [[XPGiftStorage shareStorage] getGiftDatasource:roomUid]; if (arrary.count > 0) { + delayDuration = 1; [[self getView] getNormalGiftListSuccess:arrary]; } - @kWeakify(self); - [Api requestNormalGiftList:[self createHttpCompletion:^(BaseModel * _Nonnull data) { - @kStrongify(self); - [[self getView] getNormalGiftListSuccess:[[XPGiftStorage shareStorage] cacheWith:data.data inRoom:roomUid]]; - }fail:^(NSInteger code, NSString * _Nullable msg) { - @kStrongify(self); - [[self getView] getNormalGiftListFail:msg]; - }] roomUid:roomUid]; + dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(delayDuration * NSEC_PER_SEC)), dispatch_get_global_queue(0, 0), ^{ + @kWeakify(self); + [Api requestNormalGiftList:[self createHttpCompletion:^(BaseModel * _Nonnull data) { + @kStrongify(self); + [[self getView] getNormalGiftListSuccess:[[XPGiftStorage shareStorage] cacheWith:data.data inRoom:roomUid]]; + }fail:^(NSInteger code, NSString * _Nullable msg) { + @kStrongify(self); + [[self getView] getNormalGiftListFail:msg]; + }] roomUid:roomUid]; + }); }