Browse Source

游戏恢复 3

SuperC 1 year ago
parent
commit
c3ad061273

+ 18 - 0
MiMoLive/MiMoLive.xcodeproj/project.pbxproj

@@ -872,6 +872,8 @@
 		A6AAFDBF2CEDD8E9004C4D59 /* MOGamelist.m in Sources */ = {isa = PBXBuildFile; fileRef = A6AAFDB42CEDD8E9004C4D59 /* MOGamelist.m */; };
 		A6AAFDC02CEDD8E9004C4D59 /* MOGameCenterVcReusableView.m in Sources */ = {isa = PBXBuildFile; fileRef = A6AAFDB62CEDD8E9004C4D59 /* MOGameCenterVcReusableView.m */; };
 		A6AAFDC12CEDD8E9004C4D59 /* MOGameItemCell.m in Sources */ = {isa = PBXBuildFile; fileRef = A6AAFDB72CEDD8E9004C4D59 /* MOGameItemCell.m */; };
+		A6AAFDC62CEDDD25004C4D59 /* MOSignInView.m in Sources */ = {isa = PBXBuildFile; fileRef = A6AAFDC32CEDDD25004C4D59 /* MOSignInView.m */; };
+		A6AAFDC72CEDDD25004C4D59 /* MOSignInView.xib in Resources */ = {isa = PBXBuildFile; fileRef = A6AAFDC42CEDDD25004C4D59 /* MOSignInView.xib */; };
 		A6AB6C1C2AFBCF6700422B99 /* M_SenseME_Verify_p_3.118.0.1.model in Resources */ = {isa = PBXBuildFile; fileRef = A6AB6A2D2AFBCF6700422B99 /* M_SenseME_Verify_p_3.118.0.1.model */; };
 		A6AB6C1D2AFBCF6700422B99 /* M_SenseME_DogFace_p_2.0.0.1.model in Resources */ = {isa = PBXBuildFile; fileRef = A6AB6A2E2AFBCF6700422B99 /* M_SenseME_DogFace_p_2.0.0.1.model */; };
 		A6AB6C202AFBCF6700422B99 /* M_SenseME_Attribute_p_1.2.8.1.model in Resources */ = {isa = PBXBuildFile; fileRef = A6AB6A312AFBCF6700422B99 /* M_SenseME_Attribute_p_1.2.8.1.model */; };
@@ -2893,6 +2895,9 @@
 		A6AAFDB52CEDD8E9004C4D59 /* MOGameBaseData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MOGameBaseData.h; sourceTree = "<group>"; };
 		A6AAFDB62CEDD8E9004C4D59 /* MOGameCenterVcReusableView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MOGameCenterVcReusableView.m; sourceTree = "<group>"; };
 		A6AAFDB72CEDD8E9004C4D59 /* MOGameItemCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MOGameItemCell.m; sourceTree = "<group>"; };
+		A6AAFDC32CEDDD25004C4D59 /* MOSignInView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MOSignInView.m; sourceTree = "<group>"; };
+		A6AAFDC42CEDDD25004C4D59 /* MOSignInView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = MOSignInView.xib; sourceTree = "<group>"; };
+		A6AAFDC52CEDDD25004C4D59 /* MOSignInView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MOSignInView.h; sourceTree = "<group>"; };
 		A6AB6A1D2AFBCF5D00422B99 /* model.bundle */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.plug-in"; path = model.bundle; sourceTree = "<group>"; };
 		A6AB6A232AFBCF6700422B99 /* st_mobile_common.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = st_mobile_common.h; sourceTree = "<group>"; };
 		A6AB6A242AFBCF6700422B99 /* st_mobile_animal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = st_mobile_animal.h; sourceTree = "<group>"; };
@@ -6349,6 +6354,7 @@
 		A6803B442ADFB64F00D4AB96 /* View */ = {
 			isa = PBXGroup;
 			children = (
+				A6AAFDC22CEDDD25004C4D59 /* SignIn */,
 				A613EDCE2CA2C7C800F8069B /* MOLiveTagArrayView */,
 				A6776CC92C5A6B0800F19791 /* MOSquareView */,
 				A6758E4B2BDF979A00FA6017 /* GiftView */,
@@ -7260,6 +7266,16 @@
 			path = Enter;
 			sourceTree = "<group>";
 		};
+		A6AAFDC22CEDDD25004C4D59 /* SignIn */ = {
+			isa = PBXGroup;
+			children = (
+				A6AAFDC52CEDDD25004C4D59 /* MOSignInView.h */,
+				A6AAFDC32CEDDD25004C4D59 /* MOSignInView.m */,
+				A6AAFDC42CEDDD25004C4D59 /* MOSignInView.xib */,
+			);
+			path = SignIn;
+			sourceTree = "<group>";
+		};
 		A6AB66302AFBCA2C00422B99 /* SenseLib */ = {
 			isa = PBXGroup;
 			children = (
@@ -9731,6 +9747,7 @@
 				A661229F2BF259EB00FC1CAD /* MOFanNameplateDisplayVC.xib in Resources */,
 				A6A63EA12AF394BF009ED032 /* MOFanClubSetCell.xib in Resources */,
 				A6AAFDB82CEDD8E9004C4D59 /* MOGameCenterVcReusableView.xib in Resources */,
+				A6AAFDC72CEDDD25004C4D59 /* MOSignInView.xib in Resources */,
 				A6716BF02B2C289D006735C7 /* MOPkMatchView.xib in Resources */,
 				A608FE232B26F4FF00CA7C81 /* MOLiveProportionalView.xib in Resources */,
 				A6F8CE5B2C353959003475BE /* MODiaWinView.xib in Resources */,
@@ -10147,6 +10164,7 @@
 				A6272B4F2B0F4401006464EB /* YYTextLayout.m in Sources */,
 				A62478082AD55D05000C2E10 /* MOImageBaseTableViewCell.m in Sources */,
 				A62C342F2B64EE5700DBCB35 /* MONoMoreSingleTipView.m in Sources */,
+				A6AAFDC62CEDDD25004C4D59 /* MOSignInView.m in Sources */,
 				A60CAEBE2ADD5C11007F73C7 /* UITableView+SCIndexView.m in Sources */,
 				A64AFC9B2AEFA64B00E58696 /* MOFanClubAllData.m in Sources */,
 				A6F0F5322CD8A46A0047B965 /* EaseMessageQuoteView.m in Sources */,

BIN
MiMoLive/MiMoLive.xcworkspace/xcuserdata/yanxuyao.xcuserdatad/UserInterfaceState.xcuserstate


+ 8 - 1
MiMoLive/MiMoLive/Classes/Main/Manage/MOSvgaSourceManage.h

@@ -11,6 +11,9 @@
 //Gift Category
 #define AllGiftCategroyDataKeyStr @"AllGiftCategroyDataKeyStr"
 
+//Game
+#define AllGameDataKeyStr @"AllGameDataKeyStr"
+
 #import <Foundation/Foundation.h>
 #import "MOGiftDataModels.h"
 #import "MOGiftCategoryDataModels.h"
@@ -37,7 +40,8 @@ NS_ASSUME_NONNULL_BEGIN
 
 /** 礼物分类数据 */
 @property (nonatomic, strong) NSMutableArray *giftCategoryArr;
-
+/** 游戏数据 */
+@property (nonatomic, strong) NSArray *gameDataArr;
 /** 礼物倍数配置 */
 @property (nonatomic, strong) NSDictionary *giftMultipleDict;
 /** 国家数据缓存 */
@@ -71,6 +75,9 @@ NS_ASSUME_NONNULL_BEGIN
 ///获取礼物类别 - 如果出错 根据需要是否显示报错
 - (void)toGetGiftCategoryListDataAndNeedShowError:(BOOL)needShow;
 
+#pragma mark - Game
+- (void)toGetTheGameDataAndNeedShowError:(BOOL)needShow;
+
 #pragma mark - Gift Multiple
 -(void)toGetTheGiftMultipleHttpDataAndNeedShowError:(BOOL)needShow;
 

+ 22 - 0
MiMoLive/MiMoLive/Classes/Main/Manage/MOSvgaSourceManage.m

@@ -235,6 +235,28 @@ static MOSvgaSourceManage *_manager;
     }];
 }
 
+#pragma mark - Game
+- (void)toGetTheGameDataAndNeedShowError:(BOOL)needShow{
+    WEAKSELF
+    [kHttpManager toGetGameListWithParams:nil andBlock:^(id  _Nonnull data, NSError * _Nonnull error) {
+        if(kCode_Success){
+//            NSLog(@"%@",[[NSString alloc] initWithData:[NSJSONSerialization dataWithJSONObject:data options:0 error:nil] encoding:NSUTF8StringEncoding]);
+            MOGameBaseData *baseModel = [MOGameBaseData modelObjectWithDictionary:data[@"data"]];
+            weakSelf.gameDataArr = [baseModel.gamelist copy];
+            [[MODataCache sharedYYCache] setObject:baseModel forKey:AllGameDataKeyStr];
+            
+            SendNotification(@"MOSquareListVC_ShowSignInView");
+        }
+        else{
+            NSLog(@"toGetGameListWithParams 接口报错了");
+            
+            if(needShow){
+                kShowNetError(data)
+            }
+        }
+    }];
+}
+
 #pragma mark - Gift Multiple
 -(void)toGetTheGiftMultipleHttpDataAndNeedShowError:(BOOL)needShow{
     WEAKSELF

+ 2 - 0
MiMoLive/MiMoLive/Classes/Mine/Model/Me/MOUserStatusInfo.h

@@ -22,6 +22,8 @@
 @property (nonatomic, assign) double anchorType;
 /** 工资类型[1=底薪主播(无目标)、Non Target Hos),2=佣金主播、Commission Host,3=底薪主播(有目标)、Target Host] */
 @property (nonatomic, assign) double salaryType;
+//是否显示play
+@property (nonatomic, assign) BOOL displayPlay;
 
 + (instancetype)modelObjectWithDictionary:(NSDictionary *)dict;
 - (instancetype)initWithDictionary:(NSDictionary *)dict;

+ 13 - 0
MiMoLive/MiMoLive/Classes/Mine/Model/Me/MOUserStatusInfo.m

@@ -18,6 +18,7 @@ NSString *const kMOUserStatusInfoLiveDiscount = @"liveDiscount";
 NSString *const kMOUserStatusInfoLiveAnchorType = @"anchorType";
 NSString *const kMOUserStatusInfoLiveSalaryType = @"salaryType";
 
+NSString *const kMOUserStatusInfoDisplayPlay = @"displayPlay";
 
 @interface MOUserStatusInfo ()
 
@@ -37,6 +38,8 @@ NSString *const kMOUserStatusInfoLiveSalaryType = @"salaryType";
 @synthesize anchorType = _anchorType;
 @synthesize salaryType = _salaryType;
 
+@synthesize displayPlay = _displayPlay;
+
 
 + (instancetype)modelObjectWithDictionary:(NSDictionary *)dict {
     return [[self alloc] initWithDictionary:dict];
@@ -57,6 +60,8 @@ NSString *const kMOUserStatusInfoLiveSalaryType = @"salaryType";
 
         self.anchorType = [[self objectOrNilForKey:kMOUserStatusInfoLiveAnchorType fromDictionary:dict] doubleValue];
         self.salaryType = [[self objectOrNilForKey:kMOUserStatusInfoLiveSalaryType fromDictionary:dict] doubleValue];
+        
+        self.displayPlay = [[self objectOrNilForKey:kMOUserStatusInfoDisplayPlay fromDictionary:dict] boolValue];
     }
     
     return self;
@@ -74,6 +79,8 @@ NSString *const kMOUserStatusInfoLiveSalaryType = @"salaryType";
     
     [mutableDict setValue:[NSNumber numberWithDouble:self.anchorType] forKey:kMOUserStatusInfoLiveAnchorType];
     [mutableDict setValue:[NSNumber numberWithDouble:self.salaryType] forKey:kMOUserStatusInfoLiveSalaryType];
+    
+    [mutableDict setValue:[NSNumber numberWithBool:self.displayPlay] forKey:kMOUserStatusInfoDisplayPlay];
 
     return [NSDictionary dictionaryWithDictionary:mutableDict];
 }
@@ -103,6 +110,8 @@ NSString *const kMOUserStatusInfoLiveSalaryType = @"salaryType";
     
     self.anchorType = [aDecoder decodeDoubleForKey:kMOUserStatusInfoLiveAnchorType];
     self.salaryType = [aDecoder decodeDoubleForKey:kMOUserStatusInfoLiveSalaryType];
+    
+    self.displayPlay = [aDecoder decodeBoolForKey:kMOUserStatusInfoDisplayPlay];
     return self;
 }
 
@@ -118,6 +127,8 @@ NSString *const kMOUserStatusInfoLiveSalaryType = @"salaryType";
     
     [aCoder encodeDouble:_anchorType forKey:kMOUserStatusInfoLiveAnchorType];
     [aCoder encodeDouble:_salaryType forKey:kMOUserStatusInfoLiveSalaryType];
+    
+    [aCoder encodeBool:_displayPlay forKey:kMOUserStatusInfoDisplayPlay];
 }
 
 - (id)copyWithZone:(NSZone *)zone {
@@ -136,6 +147,8 @@ NSString *const kMOUserStatusInfoLiveSalaryType = @"salaryType";
         
         copy.anchorType = self.anchorType;
         copy.salaryType = self.salaryType;
+        
+        copy.displayPlay = self.displayPlay;
     }
     
     return copy;

+ 39 - 3
MiMoLive/MiMoLive/Classes/Square/Controller/MOSquareListVC.m

@@ -37,6 +37,8 @@
 #import "UIDevice+MOAddition.h"
 #import "MOSignInNewView.h"//游戏入口
 #import "MOValueGiftView.h"//超值礼包入口
+#import "MOSignInView.h"
+#import "MOGameCenterVC.h"
 
 @interface MOSquareListVC ()<JXCategoryViewDelegate,JXCategoryListContainerViewDelegate>
 /** 顶部背景*/
@@ -62,6 +64,9 @@
 @property (nonatomic, strong) JXCategoryTitleView *titleCategoryView;
 @property (nonatomic, strong) JXCategoryListContainerView *listContainerView;
 
+/** 签到浮窗 */
+@property (nonatomic, strong) MOSignInView *signInView;
+
 @end
 
 @implementation MOSquareListVC
@@ -89,6 +94,7 @@
     ReceiveNotification(@selector(beginRefreshData), @"MOSquareListVC_Refresh")//其他设备登录
     ReceiveNotification(@selector(toShowH5VCWith:), @"MOSquareListVC_H5Jump")//H5点击跳转
     ReceiveNotification(@selector(toUpdataTheFirstRecharge:), @"MOFirstRecharge_UpdataView")//H5点击跳转
+    ReceiveNotification(@selector(updateTheSignInView), @"MOSquareListVC_ShowSignInView")//活动入口
 }
 
 - (void)toUpdataTheFirstRecharge:(NSNotification *)noti{
@@ -108,6 +114,11 @@
         }
     }];
     
+    self.signInView.hidden = ![MOTools toJudgeShowGame];
+}
+
+- (void)updateTheSignInView{
+    self.signInView.hidden = ![MOTools toJudgeShowGame];
 }
 
 - (void)toShowH5VCWith:(NSNotification *)noti{
@@ -301,14 +312,22 @@
     }];
     self.titleCategoryView.listContainer = self.listContainerView;
     
-    
     CGFloat tabbarHeight = [UIDevice mo_tabBarFullHeight] + 30.0;
-    [self.view addSubview:self.valueGiftView];
-    [self.valueGiftView mas_makeConstraints:^(MASConstraintMaker *make) {
+    [self.view addSubview:self.signInView];
+    [self.signInView mas_makeConstraints:^(MASConstraintMaker *make) {
         make.bottom.equalTo(self.view).offset(-tabbarHeight);
         make.right.equalTo(self.view);
         make.height.width.equalTo(@(60));
     }];
+    
+    [self.view addSubview:self.valueGiftView];
+    [self.valueGiftView mas_makeConstraints:^(MASConstraintMaker *make) {
+        make.bottom.equalTo(self.signInView.mas_top).offset(-5.0);
+        make.right.equalTo(self.view).offset(-3.0);
+        make.height.width.equalTo(@(80));
+    }];
+    
+    self.signInView.hidden = ![MOTools toJudgeShowGame];
  }
 
 // 点击选中或者滚动选中都会调用该方法。适用于只关心选中事件,不关心具体是点击还是滚动选中的。
@@ -419,6 +438,23 @@
     return _signInNewView;
 }
 
+- (MOSignInView *)signInView{
+    if(!_signInView){
+        _signInView = [MOSignInView moSignInView];
+        _signInView.hidden = YES;
+        
+        WEAKSELF
+        _signInView.signInClickBlock = ^{
+            
+            MOGameCenterVC *vc = [[MOGameCenterVC alloc] init];
+            vc.hidesBottomBarWhenPushed = YES;
+            [weakSelf.navigationController pushViewController:vc animated:YES];
+        };
+    }
+    
+    return _signInView;
+}
+
 - (JXCategoryTitleView *)titleCategoryView{
     if(!_titleCategoryView){
         _titleCategoryView = [[JXCategoryTitleView alloc] init];

+ 20 - 0
MiMoLive/MiMoLive/Classes/Square/View/SignIn/MOSignInView.h

@@ -0,0 +1,20 @@
+//
+//  MOSignInView.h
+//  KoKoLive
+//
+//  Created by SuperC on 2024/3/19.
+//
+
+#import <UIKit/UIKit.h>
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface MOSignInView : UIView
+
+@property (nonatomic, copy) void (^signInClickBlock)(void);
+
++ (instancetype)moSignInView;
+
+@end
+
+NS_ASSUME_NONNULL_END

+ 97 - 0
MiMoLive/MiMoLive/Classes/Square/View/SignIn/MOSignInView.m

@@ -0,0 +1,97 @@
+//
+//  MOSignInView.m
+//  KoKoLive
+//
+//  Created by SuperC on 2024/3/19.
+//
+
+#import "MOSignInView.h"
+
+@interface MOSignInView ()
+
+@property (weak, nonatomic) IBOutlet UIView *bgView;
+
+@property (weak, nonatomic) IBOutlet UIImageView *bgImgView;
+
+
+@property (nonatomic, strong) UIButton *signInBtn;
+/** svga 播放 管理类 */
+@property (nonatomic, strong) MOSVGACustomPlayer *aPlayer;
+@property (nonatomic, strong) SVGAParser *aParser;
+
+@end
+
+@implementation MOSignInView
+
++ (instancetype)moSignInView{
+    return [[[NSBundle mainBundle] loadNibNamed:@"MOSignInView" owner:self options:nil] firstObject];
+}
+
+- (void)awakeFromNib{
+    [super awakeFromNib];
+    
+    self.bgView.layer.cornerRadius = 52.0 / 2.0;
+//    self.bgView.layer.masksToBounds = YES;
+    
+    [self.bgView addSubview:self.aPlayer];
+    [self.aPlayer mas_makeConstraints:^(MASConstraintMaker *make) {
+        make.edges.equalTo(self.bgView);
+    }];
+    
+    self.aPlayer.loops = 0;
+    self.aPlayer.clearsAfterStop = NO;
+    //icon_live_sign_in
+    //icon_main_game_new
+    WEAKSELF
+    [self.aParser parseWithNamed:@"icon_main_game_new" inBundle:nil completionBlock:^(SVGAVideoEntity * _Nonnull videoItem) {
+        if (videoItem) {
+            
+            weakSelf.aPlayer.videoItem = videoItem;
+            [weakSelf.aPlayer startAnimation];
+        }
+    } failureBlock:^(NSError * _Nonnull error) {
+        NSLog(@"播放失败~~~~~~~~");
+    }];
+    
+    [self.bgView addSubview:self.signInBtn];
+    [self.signInBtn mas_makeConstraints:^(MASConstraintMaker *make) {
+        make.edges.equalTo(self.bgView);
+    }];
+}
+
+#pragma mark - Lazy
+- (UIButton *)signInBtn{
+    if (!_signInBtn)
+    {
+        _signInBtn = [UIButton buttonWithType:UIButtonTypeCustom];
+        _signInBtn.backgroundColor = [UIColor clearColor];
+        [_signInBtn addTarget:self action:@selector(signInBtnClick) forControlEvents:UIControlEventTouchUpInside];
+    }
+    return _signInBtn;
+}
+
+- (void)signInBtnClick{
+    self.signInClickBlock ? self.signInClickBlock() : nil;
+}
+
+- (MOSVGACustomPlayer *)aPlayer{
+    if (_aPlayer == nil) {
+        _aPlayer = [[MOSVGACustomPlayer alloc] init];
+        _aPlayer.contentMode = UIViewContentModeScaleAspectFit;
+        _aPlayer.loops = 0;
+        _aPlayer.clearsAfterStop = NO;
+    }
+    return _aPlayer;
+}
+
+- (SVGAParser *)aParser{
+    
+    if (_aParser == nil) {
+        _aParser = [[SVGAParser alloc] init];
+    }
+    
+    return _aParser;
+}
+
+
+@end

+ 50 - 0
MiMoLive/MiMoLive/Classes/Square/View/SignIn/MOSignInView.xib

@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="22154" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES">
+    <device id="retina6_12" orientation="portrait" appearance="light"/>
+    <dependencies>
+        <deployment identifier="iOS"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="22130"/>
+        <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
+    </dependencies>
+    <objects>
+        <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner"/>
+        <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
+        <view contentMode="scaleToFill" id="iN0-l3-epB" customClass="MOSignInView">
+            <rect key="frame" x="0.0" y="0.0" width="89" height="87"/>
+            <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
+            <subviews>
+                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="p4n-GT-sCq">
+                    <rect key="frame" x="22" y="25" width="52" height="52"/>
+                    <subviews>
+                        <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon_game_bg_view" translatesAutoresizingMaskIntoConstraints="NO" id="IRa-Jo-NnZ">
+                            <rect key="frame" x="-4" y="-4" width="60" height="60"/>
+                        </imageView>
+                    </subviews>
+                    <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                    <constraints>
+                        <constraint firstItem="IRa-Jo-NnZ" firstAttribute="top" secondItem="p4n-GT-sCq" secondAttribute="top" constant="-4" id="6sp-7f-qe4"/>
+                        <constraint firstAttribute="height" constant="52" id="KAR-gU-Ez5"/>
+                        <constraint firstAttribute="bottom" secondItem="IRa-Jo-NnZ" secondAttribute="bottom" constant="-4" id="N2G-Ip-pHC"/>
+                        <constraint firstItem="IRa-Jo-NnZ" firstAttribute="leading" secondItem="p4n-GT-sCq" secondAttribute="leading" constant="-4" id="P0t-HN-Uiy"/>
+                        <constraint firstAttribute="trailing" secondItem="IRa-Jo-NnZ" secondAttribute="trailing" constant="-4" id="bin-Kw-0dL"/>
+                        <constraint firstAttribute="width" constant="52" id="wVO-46-nul"/>
+                    </constraints>
+                </view>
+            </subviews>
+            <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+            <constraints>
+                <constraint firstAttribute="bottom" secondItem="p4n-GT-sCq" secondAttribute="bottom" constant="10" id="7fA-bD-mKM"/>
+                <constraint firstAttribute="trailing" secondItem="p4n-GT-sCq" secondAttribute="trailing" constant="15" id="oXZ-ef-PIp"/>
+            </constraints>
+            <freeformSimulatedSizeMetrics key="simulatedDestinationMetrics"/>
+            <connections>
+                <outlet property="bgImgView" destination="IRa-Jo-NnZ" id="ppo-TJ-L03"/>
+                <outlet property="bgView" destination="p4n-GT-sCq" id="fzX-rB-Ezk"/>
+            </connections>
+            <point key="canvasLocation" x="252.67175572519082" y="-237.67605633802819"/>
+        </view>
+    </objects>
+    <resources>
+        <image name="icon_game_bg_view" width="54.666667938232422" height="55"/>
+    </resources>
+</document>

+ 2 - 0
MiMoLive/MiMoLive/Global/MOTools.h

@@ -87,6 +87,8 @@ NS_ASSUME_NONNULL_BEGIN
 
 + (UIView *)containsViewOfClass:(Class)viewClass inView:(UIView *)view;
 
++ (BOOL)toJudgeShowGame;
+
 @end
 
 NS_ASSUME_NONNULL_END

+ 17 - 0
MiMoLive/MiMoLive/Global/MOTools.m

@@ -972,4 +972,21 @@
     return nil;
 }
 
+//判断是否显示游戏
++ (BOOL)toJudgeShowGame{
+    BOOL isShow = NO;
+    MOMeDataInfo *userInfoData = (MOMeDataInfo *)[[MODataCache sharedYYCache] objectForKey:kMineUserInfo];
+    isShow = userInfoData.userStatusInfo.displayPlay;
+    
+    if(isShow){
+        NSArray *tempArr = [[MOSvgaSourceManage shareManager].gameDataArr copy];
+        if(tempArr.count < 2){
+            isShow = NO;
+        }
+    }
+    
+    return isShow;
+}
+
+
 @end