developer
2023-11-10 fd94d7149c22bca6e323de3e44d28a50d7bbf481
3.1.11版本
16个文件已修改
2个文件已添加
688 ■■■■ 已修改文件
BuWanVideo2.0.xcodeproj/project.pbxproj 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo2.0/AppDelegate.m 110 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo2.0/CustomIOSAlertView.m 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo2.0/HelpViewController.m 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo2.0/Info.plist 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo2.0/Personal_informationViewController.m 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo2.0/Recommend/ListControlelr/ListController.m 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo2.0/Recommend/Recommend/Cell/RecommendAdView.h 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo2.0/Recommend/Recommend/Cell/RecommendAdView.m 68 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo2.0/Recommend/Recommend/Cell/RecommendTwoColumnCell.m 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo2.0/Recommend/Recommend/Delegate/RecommendDelegate.h 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo2.0/Recommend/Recommend/RecommendController.m 285 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo2.0/SearchController.m 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo2.0/UITabBar+mainTab.m 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo2.0/WEBViewController.m 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo2.0/searchDetailViewController.m 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Podfile 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Podfile.lock 85 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo2.0.xcodeproj/project.pbxproj
@@ -389,6 +389,7 @@
        7BFBC6861D6705AB0058FFEB /* SettingController.m in Sources */ = {isa = PBXBuildFile; fileRef = 7BFBC6821D6705AB0058FFEB /* SettingController.m */; };
        7BFBC6901D6705DD0058FFEB /* StorageSpaceTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 7BFBC68C1D6705DD0058FFEB /* StorageSpaceTableViewCell.m */; };
        7BFBC6911D6705DD0058FFEB /* StorageSpaceTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 7BFBC68D1D6705DD0058FFEB /* StorageSpaceTableViewCell.xib */; };
        8B78416D2AF4F9C100F1D7EB /* RecommendAdView.m in Sources */ = {isa = PBXBuildFile; fileRef = 8B78416C2AF4F9C100F1D7EB /* RecommendAdView.m */; };
        8BBDBCD72A739F6600EBDB45 /* DYDramaVideoController.m in Sources */ = {isa = PBXBuildFile; fileRef = 8BBDBCD52A739F6600EBDB45 /* DYDramaVideoController.m */; };
        AD73C5F51D4DE7DD0060437E /* GTMBase64.m in Sources */ = {isa = PBXBuildFile; fileRef = AD73C5F31D4DE7DD0060437E /* GTMBase64.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
        ADF0EF921D60C36F009310C9 /* WebKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = ADF0EF911D60C36F009310C9 /* WebKit.framework */; };
@@ -1044,6 +1045,8 @@
        7BFBC68B1D6705DD0058FFEB /* StorageSpaceTableViewCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = StorageSpaceTableViewCell.h; sourceTree = "<group>"; };
        7BFBC68C1D6705DD0058FFEB /* StorageSpaceTableViewCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = StorageSpaceTableViewCell.m; sourceTree = "<group>"; };
        7BFBC68D1D6705DD0058FFEB /* StorageSpaceTableViewCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = StorageSpaceTableViewCell.xib; sourceTree = "<group>"; };
        8B78416B2AF4F9B700F1D7EB /* RecommendAdView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = RecommendAdView.h; sourceTree = "<group>"; };
        8B78416C2AF4F9C100F1D7EB /* RecommendAdView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RecommendAdView.m; sourceTree = "<group>"; };
        8BBDBCD52A739F6600EBDB45 /* DYDramaVideoController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DYDramaVideoController.m; sourceTree = "<group>"; };
        8BBDBCD62A739F6600EBDB45 /* DYDramaVideoController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DYDramaVideoController.h; sourceTree = "<group>"; };
        AD73C5EC1D4DD7E50060437E /* Common.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Common.h; sourceTree = "<group>"; };
@@ -1890,6 +1893,8 @@
        70ED36BF2662382F00E51E79 /* Cell */ = {
            isa = PBXGroup;
            children = (
                8B78416C2AF4F9C100F1D7EB /* RecommendAdView.m */,
                8B78416B2AF4F9B700F1D7EB /* RecommendAdView.h */,
                70ED36C326623CCB00E51E79 /* 01.jpg */,
                70ED36C426623CCB00E51E79 /* 02.jpg */,
                70ED36C526623CCB00E51E79 /* 03.jpg */,
@@ -3097,6 +3102,7 @@
                7B1FF0DD1D670B8800E6C207 /* attentionView.m in Sources */,
                70D5934525EA1FAE00438F1A /* PPTVController.m in Sources */,
                1884A6031E545D4900548480 /* PopoverViewCell.m in Sources */,
                8B78416D2AF4F9C100F1D7EB /* RecommendAdView.m in Sources */,
                7030BAA326A40201003050E0 /* BuyVipController.m in Sources */,
                7BFBC6461D6703E40058FFEB /* WebControllerView.m in Sources */,
                18BC12B11EDEA87D001E2FB0 /* LiveListTableViewCell.m in Sources */,
@@ -3257,7 +3263,7 @@
                CODE_SIGN_ENTITLEMENTS = BuWanVideo2.0/BuWanVideo2.0.entitlements;
                CODE_SIGN_IDENTITY = "Apple Development";
                CODE_SIGN_STYLE = Automatic;
                CURRENT_PROJECT_VERSION = 99;
                CURRENT_PROJECT_VERSION = 100;
                DEVELOPMENT_TEAM = 98HSDT7AP4;
                ENABLE_BITCODE = NO;
                FRAMEWORK_SEARCH_PATHS = (
@@ -3301,7 +3307,7 @@
                    "${SRCROOT}",
                );
                INFOPLIST_FILE = BuWanVideo2.0/Info.plist;
                IPHONEOS_DEPLOYMENT_TARGET = 9.0;
                IPHONEOS_DEPLOYMENT_TARGET = 10.0;
                LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
                LIBRARY_SEARCH_PATHS = (
                    "$(inherited)",
@@ -3319,7 +3325,7 @@
                    "$(PROJECT_DIR)/BuWanVideo2.0/DKADSet_iOS_SDK_1.2.0_iphoneOS",
                    "$(PROJECT_DIR)/BuWanVideo2.0/GDT_iOS_SDK",
                );
                MARKETING_VERSION = 3.1.10;
                MARKETING_VERSION = 3.1.11;
                ONLY_ACTIVE_ARCH = YES;
                OTHER_LDFLAGS = (
                    "$(inherited)",
@@ -3408,7 +3414,7 @@
                CODE_SIGN_ENTITLEMENTS = BuWanVideo2.0/BuWanVideo2.0.entitlements;
                CODE_SIGN_IDENTITY = "Apple Development";
                CODE_SIGN_STYLE = Automatic;
                CURRENT_PROJECT_VERSION = 99;
                CURRENT_PROJECT_VERSION = 100;
                DEVELOPMENT_TEAM = 98HSDT7AP4;
                ENABLE_BITCODE = NO;
                FRAMEWORK_SEARCH_PATHS = (
@@ -3452,7 +3458,7 @@
                    "${SRCROOT}",
                );
                INFOPLIST_FILE = BuWanVideo2.0/Info.plist;
                IPHONEOS_DEPLOYMENT_TARGET = 9.0;
                IPHONEOS_DEPLOYMENT_TARGET = 10.0;
                LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
                LIBRARY_SEARCH_PATHS = (
                    "$(inherited)",
@@ -3470,7 +3476,7 @@
                    "$(PROJECT_DIR)/BuWanVideo2.0/DKADSet_iOS_SDK_1.2.0_iphoneOS",
                    "$(PROJECT_DIR)/BuWanVideo2.0/GDT_iOS_SDK",
                );
                MARKETING_VERSION = 3.1.10;
                MARKETING_VERSION = 3.1.11;
                ONLY_ACTIVE_ARCH = NO;
                OTHER_LDFLAGS = (
                    "$(inherited)",
BuWanVideo2.0/AppDelegate.m
@@ -57,9 +57,9 @@
@interface AppDelegate ()<GDTSplashAdDelegate, BUSplashAdDelegate, UINavigationControllerDelegate>
@property (strong,nonatomic) GDTSplashAd *splash;
@property (strong,nonatomic) GDTSplashAd *gdtSplash;
@property (nonatomic, strong) BUSplashAd *splashAd;
@property (nonatomic, strong) BUSplashAd *csjSplashAd;
@property (nonatomic, strong) RecommendMainController *vcRecommend;
@@ -161,25 +161,25 @@
     CGFloat  viewHeight = 0.0;
     if (width == 320.0f && height<=480.0f) {
         // iphone4 iphone4s 上的default图片
         _splash.backgroundColor=[UIColor colorWithPatternImage:[UIImage imageNamed:@"320x480"]];
         _gdtSplash.backgroundColor=[UIColor colorWithPatternImage:[UIImage imageNamed:@"320x480"]];
         //imageview.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"320"]];
         viewHeight = 55;
         
     }else if (width ==320.0f && height==568.0f) {
         // iphone5 上的default图片
         _splash.backgroundColor=[UIColor colorWithPatternImage:[UIImage imageNamed:@"320x568"]];
         _gdtSplash.backgroundColor=[UIColor colorWithPatternImage:[UIImage imageNamed:@"320x568"]];
         //imageview.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"320"]];
         viewHeight = 55;
         
     } else if (width ==375.0f) {
         // iphone6 上的default图片
         _splash.backgroundColor=[UIColor colorWithPatternImage:[UIImage imageNamed:@"375x667"]];
         _gdtSplash.backgroundColor=[UIColor colorWithPatternImage:[UIImage imageNamed:@"375x667"]];
         //imageview.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"375"]];
         viewHeight = 63;
         
     }else{
         // iphone6 plus 上的default图片
         _splash.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"414x736"]];
         _gdtSplash.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"414x736"]];
         //imageview.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"414"]];
         viewHeight = 69;
     }
@@ -239,6 +239,7 @@
    height =  [UIScreen mainScreen].bounds.size.height*2/5;
    width = [UIScreen mainScreen].bounds.size.width*4/5;
    UITextView *textView=[[UITextView alloc] initWithFrame:CGRectMake(0, 50,width ,height)];
    textView.backgroundColor = [UIColor whiteColor];
    textView.editable=NO;
    textView.font = [UIFont systemFontOfSize:20.0];
    textView.scrollEnabled = YES;
@@ -251,8 +252,8 @@
        if(buttonIndex ==0){
            //拒绝
            if (@available(iOS 10.0, *)) {
                UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"" message:@"影视大全需要您同意后才能提供完整的服务" delegate:nil cancelButtonTitle:@"确定" otherButtonTitles:nil, nil];
                [alertView show];
                UIAlertView *_alertView = [[UIAlertView alloc] initWithTitle:@"" message:@"影视大全需要您同意后才能提供完整的服务" delegate:nil cancelButtonTitle:@"确定" otherButtonTitles:nil, nil];
                [_alertView show];
            }
           
        }else{
@@ -318,6 +319,7 @@
        [[UITabBarItem appearance]setTitleTextAttributes:attr3 forState:UIControlStateNormal];
        
        self.window.rootViewController = self.tabBarController;
        [self initSplashAdContanerView];
        //判断用户是否已经获得Uid
        if ([[NSUserDefaults standardUserDefaults] objectForKey:@"uid"]!=nil) {
            //为Uid进行一个赋值,非常重要
@@ -338,7 +340,7 @@
}
- (void) initFinish{
    [self setupBUAdSDK];
    [self loadAd];
}
- (void)requestIDFA {
@@ -491,18 +493,19 @@
    return UIInterfaceOrientationMaskPortrait;
}
//穿山甲广告
- (void)setupBUAdSDK {
- (void)loadAd {
//    [BUAdSDKManager set :NO];
    // splash AD demo
    [self addSplashAD];
    [self addCSJSplashAD];
}
- (void) initCSJAd:(BUCompletionHandler)completionHandler{
    BUAdSDKConfiguration *configuration=[BUAdSDKConfiguration configuration];
    configuration.appID=@"5096047";
    configuration.coppa = @(0);
//    configuration.coppa = @(0);
    configuration.secretKey=@"buwan_ios!@";
    configuration.useMediation = YES;
    [BUAdSDKManager startWithAsyncCompletionHandler:^(BOOL success, NSError *error) {
        dispatch_async(dispatch_get_main_queue(),^{
            [self initBUContent];
@@ -531,8 +534,8 @@
    
}
#pragma mark - Splash
- (void)addSplashAD {
// 初始化广告的背景
- (void) initSplashAdContanerView{
   CGRect frame = CGRectMake(0, 0, [UIScreen mainScreen].bounds.size.width,  [UIScreen mainScreen].bounds.size.height - 100);
    self.viewBot = [[UIView alloc] initWithFrame:CGRectMake(0, 0, [UIScreen mainScreen].bounds.size.width, [UIScreen mainScreen].bounds.size.height)];
@@ -550,38 +553,32 @@
    UIImageView *logos = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"375"]];
    [views addSubview:logos];
    logos.sd_layout.centerXEqualToView(views).centerYEqualToView(views).widthIs(KScreenW).heightIs(57);
    self.splashAd = [[BUSplashAd alloc] initWithSlotID:@"887379201" adSize:CGSizeMake(frame.size.width, frame.size.height)];
    //self.splashAd.tolerateTimeout = 10;
    self.splashAd.delegate = self;
    self.splashAd.tolerateTimeout=3.0;
    float width = [UIScreen mainScreen].bounds.size.width;
    float height = [UIScreen mainScreen].bounds.size.height;
    UIImageView *imageview = [[UIImageView alloc] init];
     UIImageView *bottomImageview = [[UIImageView alloc] init];
    
    CGFloat  viewHeight = 0.0;
    if (width == 320.0f && height<=480.0f) {
        // iphone4 iphone4s 上的default图片
        _splash.backgroundColor=[UIColor colorWithPatternImage:[UIImage imageNamed:@"320x480"]];
         _gdtSplash.backgroundColor=[UIColor colorWithPatternImage:[UIImage imageNamed:@"320x480"]];
        //imageview.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"320"]];
        viewHeight = 55;
        
    }else if (width ==320.0f && height==568.0f) {
        // iphone5 上的default图片
        _splash.backgroundColor=[UIColor colorWithPatternImage:[UIImage imageNamed:@"320x568"]];
         _gdtSplash.backgroundColor=[UIColor colorWithPatternImage:[UIImage imageNamed:@"320x568"]];
        //imageview.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"320"]];
        viewHeight = 55;
        
    } else if (width ==375.0f) {
        // iphone6 上的default图片
        _splash.backgroundColor=[UIColor colorWithPatternImage:[UIImage imageNamed:@"375x667"]];
         _gdtSplash.backgroundColor=[UIColor colorWithPatternImage:[UIImage imageNamed:@"375x667"]];
        //imageview.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"375"]];
        viewHeight = 63;
        
    }else{
        // iphone6 plus 上的default图片
        _splash.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"414x736"]];
         _gdtSplash.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"414x736"]];
        //imageview.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"414"]];
        viewHeight = 69;
    }
@@ -589,12 +586,9 @@
       // _splash.backgroundColor=[UIColor colorWithPatternImage:[UIImage imageNamed:@"1125x2436"]];
        //imageview.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"414"]];
    }
    imageview.image = [UIImage imageNamed:@"375"];
    bottomImageview.image = [UIImage imageNamed:@"375"];
    
    UIWindow *keyWindow = self.window;
    //self.startTime = CACurrentMediaTime();
    [self.splashAd loadAdData];
    //[keyWindow.rootViewController.view addSubview:self.splashAdView];
    
    CGFloat screenH = [[UIScreen mainScreen] bounds].size.height;
    
@@ -603,23 +597,31 @@
    _bottomView = [[UIView alloc] initWithFrame:CGRectMake(0, screenH - 100, KScreenW, 100)];
    _bottomView.backgroundColor = [UIColor whiteColor];
    imageview.frame = CGRectMake(0, 21.5, _bottomView.frame.size.width, 57);
    [_bottomView addSubview:imageview];
     bottomImageview.frame = CGRectMake(0, 21.5, _bottomView.frame.size.width, 57);
     [_bottomView addSubview:bottomImageview];
 
    [keyWindow addSubview:self.bottomView];
}
    
    //self.splashAd.rootViewController = keyWindow.rootViewController;
#pragma mark - Splash
- (void)addCSJSplashAD {
   CGRect frame = CGRectMake(0, 0, [UIScreen mainScreen].bounds.size.width,  [UIScreen mainScreen].bounds.size.height - 100);
    self.csjSplashAd = [[BUSplashAd alloc] initWithSlotID:@"102509668" adSize:CGSizeMake(frame.size.width, frame.size.height)];
    //self.splashAd.tolerateTimeout = 10;
    self.csjSplashAd.delegate = self;
    self.csjSplashAd.tolerateTimeout=3.0;
    [self.csjSplashAd loadAdData];
}
- (void)loadAd {
- (void)loadGDTAd {
    BOOL res = [GDTSDKConfig registerAppId:GDTADkey];
    if (res) {
        
    }
    self.splash = [[GDTSplashAd alloc] initWithPlacementId:GDTFullADid];
    self.gdtSplash = [[GDTSplashAd alloc] initWithPlacementId:GDTFullADid];
    
    _splash.delegate = self;//设置代理
    _gdtSplash.delegate = self;//设置代理
    
    //根据iPhone设备不同设置不同的背景图
    float width = [UIScreen mainScreen].bounds.size.width;
@@ -628,32 +630,32 @@
    CGFloat  viewHeight = 0.0;
    if (width == 320.0f && height<=480.0f) {
        // iphone4 iphone4s 上的default图片
        _splash.backgroundColor=[UIColor colorWithPatternImage:[UIImage imageNamed:@"320x480"]];
        _gdtSplash.backgroundColor=[UIColor colorWithPatternImage:[UIImage imageNamed:@"320x480"]];
        imageview.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"320"]];
        viewHeight = 55;
        
    }else if (width ==320.0f && height==568.0f) {
        // iphone5 上的default图片
        _splash.backgroundColor=[UIColor colorWithPatternImage:[UIImage imageNamed:@"320x568"]];
        _gdtSplash.backgroundColor=[UIColor colorWithPatternImage:[UIImage imageNamed:@"320x568"]];
        imageview.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"320"]];
        viewHeight = 55;
        
    }else if (width ==375.0f) {
        // iphone6 上的default图片
        _splash.backgroundColor=[UIColor colorWithPatternImage:[UIImage imageNamed:@"375x667"]];
        _gdtSplash.backgroundColor=[UIColor colorWithPatternImage:[UIImage imageNamed:@"375x667"]];
        imageview.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"375"]];
        viewHeight = 63;
        
    }else{
        // iphone6 plus 上的default图片
        _splash.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"414x736"]];
        _gdtSplash.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"414x736"]];
        imageview.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"414"]];
        viewHeight = 69;
    }
    if (KIsiPhoneX) {
        _splash.backgroundColor=[UIColor colorWithPatternImage:[UIImage imageNamed:@"1125x2436"]];
        _gdtSplash.backgroundColor=[UIColor colorWithPatternImage:[UIImage imageNamed:@"1125x2436"]];
    }
    _splash.fetchDelay=5;//开屏拉取的时间,超时则放弃展示
    _gdtSplash.fetchDelay=5;//开屏拉取的时间,超时则放弃展示
    //    [_splash loadAdAndShowInWindow:self.window];//拉起并展示全屏广告
    
    //    [_splash loadAdAndShowInWindow:self.window withBottomView:[UIView new]];
@@ -664,7 +666,7 @@
    _bottomView.backgroundColor = [UIColor whiteColor];
    UIView *loadView = [[UIView alloc]initWithFrame:CGRectMake(0, 0, width, viewHeight)];
    loadView.backgroundColor = [UIColor clearColor];
    [_splash loadAdAndShowInWindow:self.window withBottomView:loadView];
    [_gdtSplash loadAdAndShowInWindow:self.window withBottomView:loadView];
    [self.window addSubview:self.bottomView];
}
@@ -842,12 +844,16 @@
///新版本回调
///
- (void)splashAdLoadFail:(BUSplashAd *)splashAd error:(BUAdError *)error{
    if(self.viewBot){
    [self.viewBot removeFromSuperview];
   // [splashAd removeFromSuperview];
        self.viewBot = nil;
    }
    if(self.bottomView){
    [self.bottomView removeFromSuperview];
    self.bottomView = nil;
    [self loadAd];
    }
    [self pbu_logWithSEL:_cmd msg:@""];
    [self loadGDTAd];
}
- (void)splashAdLoadSuccess:(BUSplashAd *)splashAd{
    NSLog(@"splashAdLoadSuccess");
@@ -859,9 +865,14 @@
}
- (void)splashAdDidClose:(nonnull BUSplashAd *)splashAd closeType:(BUSplashAdCloseType)closeType {
    if(self.viewBot){
    [self.viewBot removeFromSuperview];
    //[splashAd removeFromSuperview];
        self.viewBot = nil;
    }
    if(self.bottomView){
    [self.bottomView removeFromSuperview];
        self.bottomView = nil;
    }
    [self pbu_logWithSEL:_cmd msg:@""];
    [self splashDisappear];
}
@@ -883,13 +894,14 @@
- (void)splashDidCloseOtherController:(nonnull BUSplashAd *)splashAd interactionType:(BUInteractionType)interactionType {
    [splashAd.mediation destoryAd];
    [self pbu_logWithSEL:_cmd msg:@""];
}
- (void)splashVideoAdDidPlayFinish:(nonnull BUSplashAd *)splashAd didFailWithError:(nonnull NSError *)error {
    [self pbu_logWithSEL:_cmd msg:@""];
}
//- (void)splashVideoAdDidPlayFinish:(nonnull BUSplashAd *)splashAd didFailWithError:(nonnull NSError *)error {
//    [self pbu_logWithSEL:_cmd msg:@""];
//}
- (void)pbu_logWithSEL:(SEL)sel msg:(NSString *)msg {
@@ -936,7 +948,7 @@
    NSLog(@"%s",__FUNCTION__);
    self.bottomView.hidden = YES;
    [self.bottomView removeFromSuperview];
    _splash = nil;
    _gdtSplash = nil;
    [self splashDisappear];
}
BuWanVideo2.0/CustomIOSAlertView.m
@@ -197,6 +197,7 @@
{
    if (containerView == NULL) {
        containerView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 300, 150)];
        containerView.backgroundColor = [UIColor colorWithRed:198.0/255.0 green:198.0/255.0 blue:198.0/255.0 alpha:1.0f];
    }
    CGSize screenSize = [self countScreenSize];
@@ -208,10 +209,12 @@
    // This is the dialog's container; we attach the custom content and the buttons to this one
    UIView *dialogContainer = [[UIView alloc] initWithFrame:CGRectMake((screenSize.width - dialogSize.width) / 2, (screenSize.height - dialogSize.height) / 2, dialogSize.width, dialogSize.height)];
    
    // 添加标题
    UILabel *titleView= [[UILabel alloc] initWithFrame:CGRectMake(0, 0, dialogContainer.bounds.size.width, titleHeight)];
    titleView.text = @"用户协议与隐私政策";
    titleView.textAlignment = NSTextAlignmentCenter;
    titleView.textColor=[UIColor blackColor];
    [dialogContainer addSubview:titleView];
    
BuWanVideo2.0/HelpViewController.m
@@ -65,6 +65,7 @@
    UILabel *lianxi = [[UILabel alloc]initWithFrame:CGRectMake(15, 13, 80, 30)];
    lianxi.text = @"联系我们";
    lianxi.font = [UIFont systemFontOfSize:18];
    lianxi.textColor=[UIColor blackColor];
    [women addSubview:lianxi];
    
    UIImageView *image = [[UIImageView alloc]init];
@@ -74,6 +75,7 @@
    
    UILabel *kefu = [[UILabel alloc]initWithFrame:CGRectMake(80, 62, 70, 30)];
    kefu.text = @"QQ客服";
    kefu.textColor=[UIColor blackColor];
    kefu.font = [UIFont systemFontOfSize:16];
    [women addSubview:kefu];
    
@@ -96,6 +98,7 @@
    UILabel *changjian = [[UILabel alloc]initWithFrame:CGRectMake(15, 13, 80, 30)];
    changjian.text = @"常见问题";
    changjian.font = [UIFont systemFontOfSize:18];
    changjian.textColor=[UIColor blackColor];
    [wenti addSubview:changjian];
    
    UILabel *L4 = [[UILabel alloc]initWithFrame:CGRectMake(0, 49, KScreenW, 1)];
BuWanVideo2.0/Info.plist
@@ -3,7 +3,7 @@
<plist version="1.0">
<dict>
    <key>CFBundleDevelopmentRegion</key>
    <string>同意布丸影视大全使用地理信息吗?</string>
    <string>同意影视大全使用地理信息吗?</string>
    <key>CFBundleDisplayName</key>
    <string>影视大全</string>
    <key>CFBundleExecutable</key>
@@ -13,7 +13,7 @@
    <key>CFBundleInfoDictionaryVersion</key>
    <string>6.0</string>
    <key>CFBundleName</key>
    <string>布丸影视大全</string>
    <string>影视大全</string>
    <key>CFBundlePackageType</key>
    <string>APPL</string>
    <key>CFBundleShortVersionString</key>
@@ -132,15 +132,15 @@
    <key>NSBluetoothPeripheralUsageDescription</key>
    <string>需要打开您的蓝牙</string>
    <key>NSCalendarsUsageDescription</key>
    <string>同意布丸影视大全使用日历信息吗?</string>
    <string>同意影视大全使用日历信息吗?</string>
    <key>NSCameraUsageDescription</key>
    <string>用于上传头像,需要访问您的相机权限</string>
    <key>NSLocationUsageDescription</key>
    <string>同意布丸影视大全定位吗?</string>
    <string>同意影视大全定位吗?</string>
    <key>NSPhotoLibraryUsageDescription</key>
    <string>用于上传头像,需要访问您的相册权限</string>
    <key>NSUserTrackingUsageDescription</key>
    <string>布丸影视大全需要您的同意,向您投放个性化广告</string>
    <string>影视大全需要您的同意,向您投放个性化广告</string>
    <key>SKAdNetworkItems</key>
    <array>
        <dict>
@@ -155,6 +155,10 @@
            <key>SKAdNetworkIdentifier</key>
            <string>238da6jt44.skadnetwork</string>
        </dict>
        <dict>
            <key>SKAdNetworkIdentifier</key>
            <string>Adn SKAdNetworkIdentifier</string>
        </dict>
    </array>
    <key>UIRequiredDeviceCapabilities</key>
    <array>
BuWanVideo2.0/Personal_informationViewController.m
@@ -465,6 +465,7 @@
        }else{
            cell.iconImageView.image=[UIImage imageNamed:@"关注默认头像"];
        }
        cell.backgroundColor=[UIColor whiteColor];
        return cell;
    }else if(indexPath.section==1){
        InfoTableViewCell *cell=[tableView dequeueReusableCellWithIdentifier:@"InfoTableViewCell"];
@@ -492,6 +493,8 @@
                cell.cellInfo.text=@"未知";
            }
        }
        cell.cellInfo.textColor= [UIColor blackColor];
        cell.backgroundColor=[UIColor whiteColor];
        return cell;
    }else{
        signatureTableViewCell *cell=[tableView dequeueReusableCellWithIdentifier:@"signatureTableViewCell"];
@@ -499,6 +502,7 @@
        if (_Sign!=nil) {
            cell.cellInfo.text=_Sign;
        }
        cell.backgroundColor=[UIColor whiteColor];
        return cell;
    }
}
BuWanVideo2.0/Recommend/ListControlelr/ListController.m
@@ -404,14 +404,12 @@
}
- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath {
    if (indexPath.section == 0) {
    if (indexPath.section == 0 && self.dictionaryBanaer && [self.dictionaryBanaer allKeys].count != 0) {
        return  CGSizeMake(KScreenW, 5 + 156);
    } else {
        NSUInteger ids = [_parms[@"Id"] integerValue];
        if (ids == 150 || ids == 151 || ids == 152 ||ids == 153) {
            return CGSizeMake((KScreenW-9-9-6-6)/3, 41+(((KScreenW-9-9-6-6)/3))*1.39);
        } else {
            return CGSizeMake((KScreenW-9-9-8)/2, 41+(((KScreenW-9-9-8)/2))*0.562);
        }
@@ -421,14 +419,13 @@
//协议中的方法,用于返回整个CollectionView上、左、下、右距四边的间距
- (UIEdgeInsets)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout insetForSectionAtIndex:(NSInteger)section {
    
    if (section == 0) {
    if (section == 0  && self.dictionaryBanaer && [self.dictionaryBanaer allKeys].count != 0) {
        return UIEdgeInsetsMake(0, 0, 0, 0);
        
    } else {
        NSUInteger ids = [_parms[@"Id"] integerValue];
        if (ids == 150 || ids == 151 || ids == 152 ||ids == 153) {
            return UIEdgeInsetsMake(5, 9, 0, 9);
        } else {
            return UIEdgeInsetsMake(0, 9, 0, 9);
        }
@@ -438,7 +435,7 @@
//两行cell之间的间距
- (CGFloat)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout minimumLineSpacingForSectionAtIndex:(NSInteger)section {
    if (section == 0) {
    if (section == 0 && self.dictionaryBanaer && [self.dictionaryBanaer allKeys].count != 0) {
        return 0;
        
    } else {
@@ -455,7 +452,7 @@
//同一行两个cell的间距
- (CGFloat)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout minimumInteritemSpacingForSectionAtIndex:(NSInteger)section {
    if (section == 0) {
    if (section == 0  && self.dictionaryBanaer && [self.dictionaryBanaer allKeys].count != 0) {
        return 0;
        
    } else {
BuWanVideo2.0/Recommend/Recommend/Cell/RecommendAdView.h
New file
@@ -0,0 +1,22 @@
//
//  RecommendAdView.h
//  BuWanVideo2.0
//
//  Created by aeline on 2022/1/19.
//  Copyright © 2022 com.yeshi.buwansheque.ios. All rights reserved.
//
#import <UIKit/UIKit.h>
#import <LCDSDK/LCDSDK.h>
#import "RecommendDelegate.h"
#import <BUAdSDK/BUAdSDK.h>
NS_ASSUME_NONNULL_BEGIN
@interface RecommendAdView : UICollectionViewCell
@property (nonatomic, weak) id<RecommendDelegate>delegate;
- (void) showNativeAd:(BUNativeAd *)nativeAd;
- (void) closeAd;
@end
NS_ASSUME_NONNULL_END
BuWanVideo2.0/Recommend/Recommend/Cell/RecommendAdView.m
New file
@@ -0,0 +1,68 @@
//
//  RecommendAdView.m
//  BuWanVideo2.0
//
//  Created by aeline on 2022/1/19.
//  Copyright © 2022 com.yeshi.buwansheque.ios. All rights reserved.
//
#import "RecommendAdView.h"
#import <BUAdSDK/BUAdSDK.h>
@interface RecommendAdView ()
@property (nonatomic) BUNativeAdsManager *adManager;
@property (nonatomic) BUNativeAd *nativeAd;
@end
@implementation RecommendAdView
- (instancetype)initWithFrame:(CGRect)frame {
    self = [super initWithFrame:frame];
    NSLog(@"RecommendAdView initWithFrame -%f -%f",frame.origin.x,frame.origin.y);
    if (self) {
//        [self setupDataConfig];
//        [self setupViewConfig];
    }
    return self;
}
- (void)setupDataConfig {
}
- (void)setupViewConfig{
}
- (void) showNativeAd:(BUNativeAd *)nativeAd{
    if(nativeAd==nil){
        return;
    }
    if(self.contentView.subviews.count>0){
        return;
    }
    for(UIView *view in self.contentView.subviews){
        [view removeFromSuperview];
    }
    if (nativeAd.mediation.isExpressAd) {
        [nativeAd.mediation render];
    }
    if (nativeAd.mediation.canvasView) {
        if(_delegate){
            [_delegate onAdLoad];
        }
        [self.contentView addSubview:nativeAd.mediation.canvasView];
    }
}
- (void) closeAd{
    for(UIView *view in self.contentView.subviews){
        [view removeFromSuperview];
    }
}
@end
BuWanVideo2.0/Recommend/Recommend/Cell/RecommendTwoColumnCell.m
@@ -72,10 +72,14 @@
        NSRange range1 = [[NSString stringWithFormat:@"%@分",data[@"Score"]] rangeOfString:@"."];
        
        NSRange range2 = NSMakeRange(range1.location+1, 2);
        @try{
        [noteStr addAttribute:NSFontAttributeName value:[UIFont systemFontOfSize:9] range:range2];
        [ self.labelScore setAttributedText:noteStr];
    }
        @catch (NSException *exception) {
        }
    }
    
    NSString *conetnt = data[@"Name"];
    self.labelTitle.text = conetnt;
BuWanVideo2.0/Recommend/Recommend/Delegate/RecommendDelegate.h
@@ -20,6 +20,10 @@
- (void)onEventBaner:(NSDictionary *)parms;
- (void)onAdLoad;
- (void)onAdClose;
@end
NS_ASSUME_NONNULL_END
BuWanVideo2.0/Recommend/Recommend/RecommendController.m
@@ -21,10 +21,20 @@
#import "UICollectionViewLeftAlignedLayout.h"
#import "RecommendVideoCardView.h"
#import "RecommendAdView.h"
//内容联盟
#import <LCDSDK/LCDSDK.h>
@interface RecommendController () <UICollectionViewDelegate, UICollectionViewDataSource, RecommendDelegate,LCDVideoCardProviderDelegate>
#import <BUAdSDK/BUAdSDK.h>
const int CELL_TYPE_BANNER = 0;
const int CELL_TYPE_COMMON = 1;
const int CELL_TYPE_VIDEO_CARD = 2;
const int CELL_TYPE_AD = 3;
@interface RecommendController () <UICollectionViewDelegate, UICollectionViewDataSource, RecommendDelegate,LCDVideoCardProviderDelegate,BUMNativeAdsManagerDelegate,BUNativeAdDelegate>
@property (nonatomic, nullable, strong) UICollectionView *collectionView;
@@ -32,9 +42,13 @@
@property (nonatomic, nullable, strong) RecommendVideoCardView *cellRecommendVideoCard;
@property (nonatomic, nullable, strong) RecommendAdView *cellRecommendAd;
@property (nonatomic, assign) NSUInteger page;
@property (nonatomic, assign) NSUInteger position;
@property (nonatomic, assign) bool showAd;
@property (nonatomic, nullable, strong) NSDictionary *dictionaryBanaer;
@property (nonatomic, nullable, strong) NSArray *arrayTemp;
@@ -43,6 +57,11 @@
@property (nonatomic, assign) NSUInteger count;
@property (nonatomic) id<LCDViewElement> videoCardElementView;
@property (nonatomic) BUNativeAd *nativeAd;
@property (nonatomic) BUNativeAdsManager *adManager;
@end
@implementation RecommendController
@@ -94,6 +113,7 @@
    }];
}
-(void)getHomeAd{
    NSLog(@"getHomeAd");
    [SVProgressHUD show];
@@ -104,7 +124,6 @@
    dispatch_group_async(group, queue, ^{
        
        [[YTHNetInterface startInterface] getHomeAdWithUid:[YTHsharedManger startManger].Uid vtid:_parms[@"Id"] withSystem:@"1" withBlock:^(BOOL isSuccessful, id result, NSString *error) {
            if (isSuccessful) {
                NSDictionary *dic = (NSDictionary *)result;
                self.dictionaryBanaer = dic[@"Data"];
@@ -156,6 +175,7 @@
        });
    });
   [self refreshVideoCard];
   [self loadAd];
}
- (void)loadFooter:(void(^)(void))handel {
@@ -195,13 +215,25 @@
}
- (void)changeData:(NSString *)vid page:(NSUInteger)page index:(NSInteger)index {
    int offset=1+(_position==0?1:0);
    int data_offset = 1;
    if (_position==0) {
        data_offset = 1;
        if(index<3){
                data_offset += 1;
        }else{
            if(_showAd){
                data_offset += 2;
            }else{
                data_offset += 1;
            }
        }
    }
    [[YTHNetInterface startInterface] getVideoRecommendWithUid:vid Page:page WithSystem:@"1" withBlock:^(BOOL isSuccessful, id result, NSString *error) {
        if (isSuccessful) {
            NSMutableDictionary *parms = [[NSMutableDictionary alloc] initWithDictionary:self.arrayContent[index-offset]];
            NSMutableDictionary *parms = [[NSMutableDictionary alloc] initWithDictionary:self.arrayContent[index - data_offset]];
            parms[@"page"] = result[@"Data"][@"page"];
            parms[@"HomeVideoList"] = result[@"Data"][@"list"];
            self.arrayContent[index-offset] = parms;
            self.arrayContent[index-data_offset] = parms;
            [self.collectionView reloadSections:[NSIndexSet indexSetWithIndex:index]];
        }
    }];
@@ -291,19 +323,54 @@
        self.page = 1;
        //下拉刷新
        [self refreshVideoCard];
        [self loadAd];
        [self loadFooter:^{
            
        }];
    }];
}
-(int)getDataOffset:(NSInteger) section{
    int offset= 1;
    if(_position==0){
        if(section<3){
            offset += 1;
        }else{
            if(_showAd){
                offset += 2;
            }
            else{
                offset += 1;
            }
        }
    }
    return offset;
}
-(int) getCellType:(NSInteger) section{
    if(section == 0){
        return CELL_TYPE_BANNER;
    }
    if(_position!=0){
        return CELL_TYPE_COMMON;
    }
    if(section==1){
        return CELL_TYPE_VIDEO_CARD;
    }
    if(section==3&&_showAd){
        return CELL_TYPE_AD;
    }
    return CELL_TYPE_COMMON;
}
- (void)cellClick:(NSIndexPath *)indexPath {
    int offset=1+(_position==0?1:0);
    if(indexPath.section<offset){
    if([self getCellType:indexPath.section]!=CELL_TYPE_COMMON){
        return;
    }
    int offset= [self getDataOffset:indexPath.section];
    if(self.arrayContent!=nil&&self.arrayContent.count>0)
    {
    NSDictionary *parms = [NSDictionary new];
    BOOL BigPicture = [self.arrayContent[indexPath.section-offset][@"HomeVideoList"][0][@"BigPicture"] boolValue];
    if (BigPicture) {
@@ -314,10 +381,10 @@
    }
    [self onResult:parms];
}
}
- (void)headerClick:(NSIndexPath *)indexPath {
    int offset=1+(_position==0?1:0);
    int offset= [self getDataOffset:indexPath.section];
    NSDictionary *parms = [NSDictionary new];
    parms = self.arrayContent[indexPath.section-offset][@"HomeVideoList"][0][@"Video"];
    
@@ -363,16 +430,25 @@
}
- (NSInteger)numberOfSectionsInCollectionView:(UICollectionView *)collectionView {
    //TODO 测试
    //添加今日必看与广告
    int offset=1+(_position==0?1:0);
    if(_showAd){
        offset+=1;
    }
    return self.arrayContent.count+offset;
}
- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section {
    int offset=1+(_position==0?1:0);
    if (section <offset) {
    // 位置0 banner
    // 位置1-今日必看
    // 位置3-广告
    if (_position==0&&section==1) {
        return 1;
    } else {
    }else if(_position==0&&section==3&&_showAd){
        return 1;
    } else if(section>0) {
        int offset= [self getDataOffset:section];
        if(self.arrayContent!=nil&&self.arrayContent.count>0){
        NSUInteger Columns = [self.arrayContent[section-offset][@"Columns"] integerValue];
        if (Columns == 2 || Columns == 3) {
            if ([self.arrayContent[section-offset][@"HomeVideoList"] count] > 0) {
@@ -384,12 +460,13 @@
            }
        }
    }
    }
    return 1;
}
- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath {
    
    int offset=1+(_position==0?1:0);
    int cell_type = [self getCellType:indexPath.section];
    
    if (indexPath.section == 0) {
        if (!self.cellRecommendHeader) {
@@ -398,16 +475,24 @@
        self.cellRecommendHeader.delegate = self;
        self.cellRecommendHeader.arrayImageData = self.dictionaryBanaer;
        return self.cellRecommendHeader;
    }else if (indexPath.section == 1&&offset==2) {
    }else if (cell_type == CELL_TYPE_VIDEO_CARD) {
        if (!self.cellRecommendVideoCard) {
            self.cellRecommendVideoCard = [collectionView dequeueReusableCellWithReuseIdentifier:@"RecommendVideoCardView" forIndexPath:indexPath];
        }
        //刷新数据
        return self.cellRecommendVideoCard;
    }else if (cell_type == CELL_TYPE_AD) {
        if (!self.cellRecommendAd) {
            self.cellRecommendAd = [collectionView dequeueReusableCellWithReuseIdentifier:@"RecommendAdView" forIndexPath:indexPath];
            self.cellRecommendAd.delegate = self;
        }
        // 显示广告数据
        [self.cellRecommendAd showNativeAd:self.nativeAd];
        return self.cellRecommendAd;
    } else {
        int offset= [self getDataOffset:indexPath.section];
        NSLog(@"加载cell %i-%i",indexPath.section,indexPath.row);
        if(self.arrayContent!=nil&&self.arrayContent.count>0){
        NSUInteger Columns = [self.arrayContent[indexPath.section-offset][@"Columns"] integerValue];
        if (Columns > 3) {
            ToDayHotCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"ToDayHotCell" forIndexPath:indexPath];
@@ -450,6 +535,7 @@
            }
        }
    }
    }
    UICollectionViewCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"UICollectionViewCell" forIndexPath:indexPath];
    return cell;
}
@@ -457,10 +543,12 @@
// 定制collectionView的head和foot
- (UICollectionReusableView *)collectionView:(UICollectionView *)collectionView viewForSupplementaryElementOfKind:(NSString *)kind atIndexPath:(NSIndexPath *)indexPath {
    
    int offset=1+(_position==0?1:0);
    int offset=[self getDataOffset:indexPath.section];
    int cell_type = [self getCellType:indexPath.section];
    
    if (kind == UICollectionElementKindSectionHeader) {
        if (indexPath.section > offset-1) {
        if (cell_type == CELL_TYPE_COMMON&& indexPath.section >0 ) {
            if(self.arrayContent!=nil&&self.arrayContent.count>0&&indexPath.section>0){
            RecpmmendTitleView *view = [collectionView dequeueReusableSupplementaryViewOfKind:UICollectionElementKindSectionHeader withReuseIdentifier:@"RecpmmendTitleView" forIndexPath:indexPath];
            view.delegate = self;
            BOOL BigPicture = NO;
@@ -472,7 +560,8 @@
            view.index = indexPath.section;
            view.indexPath = indexPath;
            return view;
        }else if(indexPath.section==1&&offset==2){
            }
        }else if(cell_type == CELL_TYPE_VIDEO_CARD){
                RecpmmendTitleView *view = [collectionView dequeueReusableSupplementaryViewOfKind:UICollectionElementKindSectionHeader withReuseIdentifier:@"RecpmmendTitleView" forIndexPath:indexPath];
                view.delegate = self;
                BOOL BigPicture = NO;
@@ -484,7 +573,8 @@
        }
        
    } else if (kind == UICollectionElementKindSectionFooter) {
        if (indexPath.section > offset) {
        if (cell_type == CELL_TYPE_COMMON) {
            if(self.arrayContent!=nil&&self.arrayContent.count>0&&indexPath.section>0){
            NSDictionary *data = self.arrayContent[indexPath.section-offset];
            if ([data[@"RefreshPosition"] integerValue] == 2) {
                RecommendChangeFooterView *view = [collectionView dequeueReusableSupplementaryViewOfKind:UICollectionElementKindSectionFooter withReuseIdentifier:@"RecommendChangeFooterView" forIndexPath:indexPath];
@@ -494,9 +584,9 @@
                return view;
            }
        }
        }
        UICollectionReusableView *view = [collectionView dequeueReusableSupplementaryViewOfKind:UICollectionElementKindSectionFooter withReuseIdentifier:@"tempFooterView" forIndexPath:indexPath];
        return view;
    }
    
    UICollectionReusableView *view = [collectionView dequeueReusableSupplementaryViewOfKind:UICollectionElementKindSectionHeader withReuseIdentifier:@"tempHeaderView" forIndexPath:indexPath];
@@ -506,47 +596,66 @@
}
- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout referenceSizeForHeaderInSection:(NSInteger)section{
    int offset=1+(_position==0?1:0);
    int offset=[self getDataOffset:section];
    //宽度随便定,系统会自动取collectionView的宽度
    //高度为分组头的高度
    if (section > offset-1) {
    int cell_type = [self getCellType:section];
    if (cell_type==CELL_TYPE_COMMON&&section>0) {
        if(self.arrayContent!=nil&&self.arrayContent.count>0){
        if ([self.arrayContent[section-offset][@"HomeVideoList"] count] > 0) {
            BOOL BigPicture = [self.arrayContent[section-offset][@"HomeVideoList"][0][@"BigPicture"] boolValue];
            if (BigPicture) {
                return CGSizeMake(KScreenW, 216 + 40 + 30);
            }
        }
        }
        return CGSizeMake(KScreenW, 47);
    }else if(section==1){
    }else if(cell_type==CELL_TYPE_VIDEO_CARD){
        // 小视频
        return CGSizeMake(KScreenW, 47);
    }else if(cell_type==CELL_TYPE_AD){
        // 广告
        //return CGSizeMake(KScreenW, KScreenW*0.8);
        return CGSizeMake(CGFLOAT_MIN, CGFLOAT_MIN);
    }
    return CGSizeMake(CGFLOAT_MIN, CGFLOAT_MIN);
}
- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout referenceSizeForFooterInSection:(NSInteger)section {
    int offset=1+(_position==0?1:0);
    if (section <offset) {
    int offset=[self getDataOffset:section];
    //宽度随便定,系统会自动取collectionView的宽度
    //高度为分组头的高度
    int cell_type = [self getCellType:section];
    if (cell_type!=CELL_TYPE_COMMON||section == 0) {
        return CGSizeMake(CGFLOAT_MIN, CGFLOAT_MIN);
    }
    if(self.arrayContent!=nil&&self.arrayContent.count>0)
    {
    NSUInteger Columns = [self.arrayContent[section-offset][@"RefreshPosition"] integerValue];
    if (Columns == 2) {
        return CGSizeMake(KScreenW, 41);
    } else {
        return CGSizeMake(CGFLOAT_MIN, CGFLOAT_MIN);
    }
}
    return CGSizeMake(CGFLOAT_MIN, CGFLOAT_MIN);
}
- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath {
    int offset=1+(_position==0?1:0);
    int offset=[self getDataOffset:indexPath.section];
    int cell_type = [self getCellType:indexPath.section];
    if (indexPath.section == 0) {
        CGFloat bannerSizeRate = [self.dictionaryBanaer[@"bannerSizeRate"] doubleValue];
        return  CGSizeMake(KScreenW, 5 + (KScreenW * bannerSizeRate));
    } else  if (indexPath.section == 1&&offset==2) {
//        return  CGSizeMake(KScreenW, KScreenW/2.4 * 1.4);
    } else  if (cell_type ==CELL_TYPE_VIDEO_CARD) {
        return  CGSizeMake(KScreenW, KScreenW/2.4 * 1.4);
    }  else {
    }else  if (cell_type ==CELL_TYPE_AD) {
            return  CGSizeMake(KScreenW, KScreenW*0.6);
    }
    else {
        if(self.arrayContent!=nil&&self.arrayContent.count>0){
        NSUInteger Columns = [self.arrayContent[indexPath.section-offset][@"Columns"] integerValue];
        if (Columns > 3) {
            return  CGSizeMake(KScreenW, 140);
@@ -568,16 +677,23 @@
            }
        }
    }
    }
    return  CGSizeMake(KScreenW, 35);
}
//协议中的方法,用于返回整个CollectionView上、左、下、右距四边的间距
- (UIEdgeInsets)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout insetForSectionAtIndex:(NSInteger)section {
    int offset=1+(_position==0?1:0);
    if (section <offset) {
        return UIEdgeInsetsMake(0, 0, 0, 0);
    int offset=[self getDataOffset:section];
    int cell_type = [self getCellType:section];
        
    if (cell_type!=CELL_TYPE_COMMON||section==0) {
        if(cell_type==CELL_TYPE_AD){
            return UIEdgeInsetsMake(10, 9, 0, 9);
    }  else {
            return UIEdgeInsetsMake(0, 0, 0, 0);
        }
    }  else {
        if(self.arrayContent!=nil&&self.arrayContent.count>0){
        NSUInteger Columns = [self.arrayContent[section-offset][@"Columns"] integerValue];
        if (Columns == 2 || Columns == 3) {
            return UIEdgeInsetsMake(5, 9, 0, 9);
@@ -586,16 +702,19 @@
            return UIEdgeInsetsMake(0, 9, 0, 9);
        }
    }
    }
    return UIEdgeInsetsMake(0, 0, 0, 0);
}
//两行cell之间的间距
- (CGFloat)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout minimumLineSpacingForSectionAtIndex:(NSInteger)section {
    int offset=1+(_position==0?1:0);
    if (section <offset) {
    int offset=[self getDataOffset:section];
    int cell_type = [self getCellType:section];
    if (cell_type!=CELL_TYPE_COMMON||section==0) {
        return 0;
        
    } else {
        if(self.arrayContent!=nil&&self.arrayContent.count>0){
        NSUInteger Columns = [self.arrayContent[section-offset][@"Columns"] integerValue];
        if (Columns == 2) {
            return 12;
@@ -604,22 +723,26 @@
            return 10;
        }
    }
    }
    return 0;
}
//同一行两个cell的间距
- (CGFloat)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout minimumInteritemSpacingForSectionAtIndex:(NSInteger)section {
    int offset=1+(_position==0?1:0);
    if (section <offset) {
    int offset=[self getDataOffset:section];
    int cell_type = [self getCellType:section];
    if (cell_type!=CELL_TYPE_COMMON||section==0) {
        return 0;
        
    } else {
        if(self.arrayContent!=nil&&self.arrayContent.count>0){
        NSUInteger Columns = [self.arrayContent[section-offset][@"Columns"] integerValue];
        if (Columns == 2) {
            return 8;
            
        } else if (Columns == 3) {
            return 6;
            }
        }
    }
    return 0;
@@ -646,6 +769,8 @@
        [_collectionView registerClass:[RecommendThreeColumnCell class] forCellWithReuseIdentifier:@"RecommendThreeColumnCell"];
        
        [_collectionView registerClass:[RecommendVideoCardView class] forCellWithReuseIdentifier:@"RecommendVideoCardView"];
        [_collectionView registerClass:[RecommendAdView class] forCellWithReuseIdentifier:@"RecommendAdView"];
        
        [_collectionView registerClass:[UICollectionViewCell class] forCellWithReuseIdentifier:@"UICollectionViewCell"];
        
@@ -681,4 +806,78 @@
    NSLog(@"video-card lcdContentRequestSuccess");
}
- (void) loadAd{
    if (self.adManager) {
            // 销毁上次广告对象 聚合维度方法
            [self.adManager.mediation destory];
    }
    BUAdSlot *slot = [[BUAdSlot alloc] init];
    slot.ID = @"102509315"; // 聚合维度通过广告位ID发起请求,仅接入CSJ广告通过代码位ID发起请求
    slot.adSize = CGSizeMake(KScreenW-9*2, (KScreenW-9*2)*0.6); // 按照实际情况设置广告尺寸
    slot.mediation.mutedIfCan = YES; // 静音 (聚合功能)
    BUNativeAdsManager *adManager = [[BUNativeAdsManager alloc] initWithSlot:slot];
    self.adManager = adManager;
    self.adManager.mediation.rootViewController = [UIApplication sharedApplication].delegate.window.rootViewController;
    self.adManager.delegate = self;
    [self.adManager loadAdDataWithCount:1]; // 加载广告数量,支持1~3个
}
- (void)nativeAdsManagerSuccessToLoad:(BUNativeAdsManager *)adsManager nativeAds:(NSArray<BUNativeAd *> *)nativeAdDataArray{
    if(nativeAdDataArray.count>0){
        if(self.nativeAd){
            self.nativeAd = nil;
        }
        self.nativeAd = nativeAdDataArray[0];
        self.nativeAd.rootViewController = [UIApplication sharedApplication].keyWindow.rootViewController;
        if (self.nativeAd.mediation.isExpressAd) {
            [self.nativeAd.mediation render];
        }
        self.nativeAd.delegate = self;
        if(self.cellRecommendAd){
            [self.cellRecommendAd closeAd];
        }
        [self onAdLoad];
    }
}
- (void)nativeAd:(BUNativeAd *)nativeAd dislikeWithReason:(NSArray<BUDislikeWords *> *)filterWords{
    if(self){
        [self onAdClose];
    }
}
- (void)nativeAd:(BUNativeAd *)nativeAd didFailWithError:(NSError *)error{
    if(self){
        [self onAdClose];
        if(self.cellRecommendAd){
            [self.cellRecommendAd closeAd];
        }
    }
}
//加载广告
- (void)onAdLoad{
    _showAd = YES;
    BOOL animationsEnabled = [UIView areAnimationsEnabled];
            [UIView setAnimationsEnabled:NO];
    //为了避免重新加载时出现不需要的动画(又名“闪烁”)
    [UIView setAnimationsEnabled:NO];
    [self.collectionView reloadData];
    [UIView setAnimationsEnabled:animationsEnabled];
}
// 关闭广告
- (void)onAdClose{
    _showAd = NO;
    BOOL animationsEnabled = [UIView areAnimationsEnabled];
            [UIView setAnimationsEnabled:NO];
    //为了避免重新加载时出现不需要的动画(又名“闪烁”)
    [UIView setAnimationsEnabled:NO];
    [self.collectionView reloadData];
    [UIView setAnimationsEnabled:animationsEnabled];
}
@end
BuWanVideo2.0/SearchController.m
@@ -183,17 +183,18 @@
                                                               GDTNativeExpressAdView *> *)views
{
    GDTNativeExpressAdView *adView = (GDTNativeExpressAdView *)views[0];
    adView.controller = self;
    [adView render];
    NSIndexPath *indexPath = [NSIndexPath indexPathForRow:0 inSection:3];
    UICollectionViewCell *cell = (UICollectionViewCell *)[self.collectionView cellForItemAtIndexPath:indexPath];
    if(cell!=nil){
    cell.sd_layout.leftSpaceToView(self, 10);
    [cell addSubview:adView];
    // 广告位 render 后刷新 tableView
    [self.collectionView reloadData];
}
}
- (void)nativeExpressAdFailToLoad:(GDTNativeExpressAd *)nativeExpressAd error:(NSError *)error{
    NSLog(@"%@",error);
}
BuWanVideo2.0/UITabBar+mainTab.m
@@ -9,8 +9,13 @@
#import "UITabBar+mainTab.h"
@implementation UITabBar (mainTab)
- (UITraitCollection *)traitCollection {
        if (@available(iOS 17,*)){
            return [super traitCollection];
        }else{
    return [UITraitCollection traitCollectionWithHorizontalSizeClass:UIUserInterfaceSizeClassCompact];
}
    }
@end
BuWanVideo2.0/WEBViewController.m
@@ -25,11 +25,11 @@
- (void)viewDidLoad{
    [super viewDidLoad];
    //做的假导航栏
    _titleView=[[UILabel alloc] initWithFrame:CGRectMake(0, 0, KScreenW, 64)];
    _titleView=[[UILabel alloc] initWithFrame:CGRectMake(0, 0 , KScreenW, 64 + kStatusBarH)];
    _titleView.backgroundColor=kGlobalMainColor;
    _titleView.userInteractionEnabled=YES;
    [self.view addSubview:_titleView];
    //添加网页链接
    _urlView=[[UILabel alloc] initWithFrame:CGRectMake(50, 34, KScreenW-100, 24)];
@@ -62,10 +62,11 @@
    
    // 这行代码可以是侧滑返回webView的上一级,而不是跟控制器(*指针对侧滑有效)
    [_webView setAllowsBackForwardNavigationGestures:true];
    [self.view addSubview:_webView];
    
    //添加返回按钮
    _backBt=[[UIButton alloc] initWithFrame:CGRectMake(8, 22, 32, 32)];
    _backBt=[[UIButton alloc] initWithFrame:CGRectMake(8, 22 + kStatusBarH , 32, 32)];
    [_backBt setImage:[UIImage imageNamed:@"详情页面返回"] forState:UIControlStateNormal];
    [_backBt addTarget:self action:@selector(backButtonPushed:) forControlEvents:UIControlEventTouchUpInside];
    [self.view addSubview:_backBt];
@@ -82,16 +83,18 @@
    [_webView addObserver:self forKeyPath:@"title" options:NSKeyValueObservingOptionNew context:NULL];
    [_webView addObserver:self forKeyPath:@"estimatedProgress" options:NSKeyValueObservingOptionNew context:NULL];
    
    [self loadwebViews];
//    UIView *view=[[UIView alloc] initWithFrame:CGRectMake(0, kStatusBarH , KScreenW, kStatusBarH)];
//    view.backgroundColor=[UIColor redColor];
//    [self.view addSubview:view];
}
- (void)viewWillAppear:(BOOL)animated{
    [super viewWillAppear:animated];
    //保持屏幕常亮
    [[UIApplication sharedApplication] setIdleTimerDisabled:YES];
    [[UIApplication sharedApplication] setStatusBarHidden:YES];
}
-(void)viewWillDisappear:(BOOL)animated{
@@ -196,11 +199,11 @@
}
//支持的方向 因为界面A我们只需要支持竖屏
- (UIInterfaceOrientationMask)supportedInterfaceOrientations{
    _titleView.frame=CGRectMake(0, 0, KScreenWp, 64);
    _urlView.frame=CGRectMake(50, 34, KScreenWp-100, 24);
    _webView.frame=CGRectMake(0, 64, KScreenWp, KScreenHp-64);
    _backBt.frame=CGRectMake(8, 22, 32, 32);
    _reloadBt.frame=CGRectMake(KScreenWp-40, 22, 32, 32);
    _titleView.frame=CGRectMake(0, 0, KScreenWp, 64 + kStatusBarH + (KIsiPhoneX?20:0));
    _urlView.frame=CGRectMake(50, 34 + kStatusBarH + (KIsiPhoneX?20:0), KScreenWp-100, 24);
    _webView.frame=CGRectMake(0, 64 + kStatusBarH + (KIsiPhoneX?20:0), KScreenWp, KScreenHp-64 - kStatusBarH - (KIsiPhoneX?20:0));
    _backBt.frame=CGRectMake(8, 22 + kStatusBarH + (KIsiPhoneX?20:0), 32, 32);
    _reloadBt.frame=CGRectMake(KScreenWp-40, 22 + kStatusBarH + (KIsiPhoneX?20:0), 32, 32);
    return _orMake;
}
@@ -209,7 +212,7 @@
        if (object == _webView) {
            NSString *title = _webView.title;
            if(webtitle==nil){
                webtitle=[[UILabel alloc] initWithFrame:CGRectMake(50, 15, KScreenW-100, 32)];
                webtitle=[[UILabel alloc] initWithFrame:CGRectMake(50, 15 + kStatusBarH+ (KIsiPhoneX?20:0), KScreenW-100, 32)];
                [webtitle setFont:[UIFont systemFontOfSize:14]];
                [webtitle setTextColor:[UIColor whiteColor]];
                [webtitle setTextAlignment:NSTextAlignmentLeft];
BuWanVideo2.0/searchDetailViewController.m
@@ -245,7 +245,7 @@
        [self.DisplayTabelView setHidden:NO];
        [self.suggestTableview setHidden:YES];
        [self.DisplayTabelView.mj_header beginRefreshing];
        [self searchDataWithText:text withType:typenumber withPage:1 :YES];
    } else {
        //提示用户搜索内容不能为空
    }
@@ -606,7 +606,7 @@
    if(tableView == self.suggestTableview){
        NSString *name = [_suggestSearch objectAtIndex:indexPath.section];
        [self textFieldSearch:name];
        [self searchDataWithText:name withType:typenumber withPage:1 :YES];
        //[self searchDataWithText:name withType:typenumber withPage:1 :YES];
        
    } else {
        XYRVideoInfoModel *model = [XYRVideoInfoModel yy_modelWithDictionary:_dataSearch[indexPath.section]];
Podfile
@@ -2,7 +2,8 @@
#source 'https://gitee.com/mirrors/CocoaPods-Specs.git'
#source 'https://github.com/volcengine/volcengine-specs.git'
#source 'http://repo.baichuan-ios.taobao.com/baichuanSDK/AliBCSpecs.git'
platform :ios, '9.0'
platform :ios, '10.0'
#platform :ios, '13.0'
install! 'cocoapods', :disable_input_output_paths => true
use_frameworks!
@@ -21,10 +22,11 @@
  pod 'SDAutoLayout'
  pod 'IQKeyboardManager'
  pod 'SVProgressHUD'
  pod 'GDTMobSDK'
  pod 'GDTMobSDK', '4.14.45'
  # GroMore SDK
  pod 'Ads-Fusion-CN-Beta','5.7.0.8', :subspecs => ['BUAdSDK','CSJMediation']
  pod 'BUAdTestMeasurement','5.6.0.5', :configuration => ['Debug']
  pod 'CSJMGdtAdapter','4.14.45.0'
  #LCDSDK,版本号以赋能平台生成的Pod命令为准
  pod 'Pangrowth', '3.9.0.2', :subspecs => ['media']
  # AppLog SDK
@@ -32,7 +34,7 @@
  #       :subspecs => ['Core', 'Log', 'Host/CN'],
  #       :source=> 'https://github.com/bytedance/cocoapods_sdk_source_repo.git'
  # 穿山甲SDK,版本号以赋能平台生成的Pod命令为准
  pod 'Ads-CN'
  # pod 'Ads-CN'
  # APMInsight SDK
  pod 'RangersAPM', '3.3.1', :subspecs => [
       'Core',
Podfile.lock
@@ -1,11 +1,8 @@
PODS:
  - Ads-CN (5.1.0.5):
    - Ads-CN/BUAdSDK (= 5.1.0.5)
  - Ads-CN/BUAdSDK (5.1.0.5):
    - Ads-CN/Dep_Accurate
  - Ads-CN/Dep_Accurate (5.1.0.5):
    - BUAdSDK (= 0.2.0.1)
    - BURelyFoundation/CSJ (= 0.1.0.7)
  - Ads-Fusion-CN-Beta/BUAdSDK (5.7.0.8):
    - BURelyFoundation/CSJ (= 0.3.0.7)
  - Ads-Fusion-CN-Beta/CSJMediation (5.7.0.8):
    - Ads-Fusion-CN-Beta/BUAdSDK
  - AFNetworking (3.2.1):
    - AFNetworking/NSURLSession (= 3.2.1)
    - AFNetworking/Reachability (= 3.2.1)
@@ -21,48 +18,21 @@
  - AFNetworking/Serialization (3.2.1)
  - AFNetworking/UIKit (3.2.1):
    - AFNetworking/NSURLSession
  - BUAdSDK (0.2.0.1):
    - BUAdSDK/BUAdSDK (= 0.2.0.1)
  - BUAdSDK/BUAdSDK (0.2.0.1)
  - BURelyFoundation/AFNetworking (0.1.0.7)
  - BURelyFoundation/BURelyFoundation (0.1.0.7)
  - BURelyFoundation/CSJ (0.1.0.7):
    - BURelyFoundation/AFNetworking
    - BURelyFoundation/BURelyFoundation
    - BURelyFoundation/CSJLottie
    - BURelyFoundation/Foundation
    - BURelyFoundation/Gecko
  - BUAdTestMeasurement (5.6.0.5)
  - BURelyFoundation/AFNetworking (0.3.0.7)
  - BURelyFoundation/BURelyFoundationHeader (0.3.0.7)
  - BURelyFoundation/CSJ (0.3.0.7):
    - BURelyFoundation/BURelyFoundationHeader
    - BURelyFoundation/HM
    - BURelyFoundation/NETWork
    - BURelyFoundation/SDWebImage
    - BURelyFoundation/Ugen
    - BURelyFoundation/YYModel
    - BURelyFoundation/ZFPlayer
    - BURelyFoundation/Zip
  - BURelyFoundation/CSJLottie (0.1.0.7)
  - BURelyFoundation/ELCoreTokenizer (0.1.0.7)
  - BURelyFoundation/Foundation (0.1.0.7):
    - BURelyFoundation/NETWork
  - BURelyFoundation/Gecko (0.1.0.7):
    - BURelyFoundation/Foundation
  - BURelyFoundation/HM (0.1.0.7)
  - BURelyFoundation/NETWork (0.1.0.7):
  - BURelyFoundation/HM (0.3.0.7)
  - BURelyFoundation/NETWork (0.3.0.7):
    - BURelyFoundation/AFNetworking
  - BURelyFoundation/SDWebImage (0.1.0.7):
    - BURelyFoundation/Foundation
    - BURelyFoundation/ServiceCenter
  - BURelyFoundation/ServiceCenter (0.1.0.7)
  - BURelyFoundation/Ugen (0.1.0.7):
    - BURelyFoundation/ELCoreTokenizer
  - BURelyFoundation/YYModel (0.1.0.7)
  - BURelyFoundation/ZFPlayer (0.1.0.7):
    - BURelyFoundation/Foundation
    - BURelyFoundation/Zip
  - BURelyFoundation/Zip (0.1.0.7):
    - BURelyFoundation/Foundation
  - GDTMobSDK (4.14.12):
    - GDTMobSDK/GDTMobSDK (= 4.14.12)
  - GDTMobSDK/GDTMobSDK (4.14.12)
  - CSJMGdtAdapter (4.14.45.0):
    - Ads-Fusion-CN-Beta/CSJMediation (>= 5.6.1.3)
  - GDTMobSDK (4.14.45):
    - GDTMobSDK/GDTMobSDK (= 4.14.45)
  - GDTMobSDK/GDTMobSDK (4.14.45)
  - IQKeyboardManager (6.5.9)
  - OneKit/BaseKit (1.4.2):
    - OneKit/Service
@@ -158,9 +128,12 @@
    - YYImage
DEPENDENCIES:
  - Ads-CN
  - Ads-Fusion-CN-Beta/BUAdSDK (= 5.7.0.8)
  - Ads-Fusion-CN-Beta/CSJMediation (= 5.7.0.8)
  - AFNetworking (~> 3.0)
  - GDTMobSDK
  - BUAdTestMeasurement (= 5.6.0.5)
  - CSJMGdtAdapter (= 4.14.45.0)
  - GDTMobSDK (= 4.14.45)
  - IQKeyboardManager
  - Pangrowth/media (= 3.9.0.2)
  - RangersAPM/Core (= 3.3.1)
@@ -187,10 +160,11 @@
    - RangersAppLog
    - RARegisterKit
  trunk:
    - Ads-CN
    - Ads-Fusion-CN-Beta
    - AFNetworking
    - BUAdSDK
    - BUAdTestMeasurement
    - BURelyFoundation
    - CSJMGdtAdapter
    - GDTMobSDK
    - IQKeyboardManager
    - SDAutoLayout
@@ -216,11 +190,12 @@
    :tag: 2.5.2
SPEC CHECKSUMS:
  Ads-CN: 342fba3a46d17fa395da7bba1d88893fe33905e6
  Ads-Fusion-CN-Beta: b24c5ebc64156900daf68751537582841920d328
  AFNetworking: cb604b1c2bded0871f5f61f5d53653739e841d6b
  BUAdSDK: 002b735289815f703efc9108f66347ac61f1892a
  BURelyFoundation: 0de7dbb9acc7f69a0a56b09949260f5dc5a4e0ab
  GDTMobSDK: 085bb4c2390d78330405d90acfc43fa7f8d0a44e
  BUAdTestMeasurement: 49fdfe9592b53e533e9388d34298549733205e9d
  BURelyFoundation: bfffcd4174e88fde6a73c1d521b801ba117d15b6
  CSJMGdtAdapter: bf3b16efa4294bc2669181692de2bd44b7eb9adf
  GDTMobSDK: 149d13de51d63a8ac0368836fd06fd7db52de816
  IQKeyboardManager: 241cc94ccabc9deb8f8bd7d12f00d73288d13ecc
  OneKit: 05d59eb122e247640c35ceb28b300ae27e89cb88
  Pangrowth: aa585a527ef38f341e13c27e2e101f2c3656a597
@@ -241,6 +216,6 @@
  YYModel: 2a7fdd96aaa4b86a824e26d0c517de8928c04b30
  YYWebImage: 5f7f36aee2ae293f016d418c7d6ba05c4863e928
PODFILE CHECKSUM: 7206d661c260c67cf85ecc66a5097e2b50122f2e
PODFILE CHECKSUM: 0c7d8ca840e8785f6e7dfb217f8326edb9f182e8
COCOAPODS: 1.12.1