Commit 90108bd08ef751e6bdc0e96114557f9331f19271
1 parent
c0efbe6f
no message
Showing
11 changed files
with
192 additions
and
179 deletions
CNLiveVideoClassifyKit/Classes/Controller/CNCategoryBaseViewController.h
| @@ -10,12 +10,17 @@ | @@ -10,12 +10,17 @@ | ||
| 10 | 10 | ||
| 11 | NS_ASSUME_NONNULL_BEGIN | 11 | NS_ASSUME_NONNULL_BEGIN |
| 12 | 12 | ||
| 13 | -@interface CNCategoryBaseViewController : CNLiveBaseViewController<JXCategoryListContainerViewDelegate,JXCategoryViewDelegate> | ||
| 14 | -@property (nonatomic, strong) NSMutableArray *titles; | 13 | +@interface CNCategoryBaseViewController : CNLiveBaseViewController<JXCategoryViewDelegate,UIPageViewControllerDelegate,UIPageViewControllerDataSource> |
| 14 | + | ||
| 15 | @property (nonatomic, strong) JXCategoryBaseView *categoryView; | 15 | @property (nonatomic, strong) JXCategoryBaseView *categoryView; |
| 16 | -@property (nonatomic, strong) JXCategoryListContainerView *listContainerView; | ||
| 17 | -@property (nonatomic, assign) BOOL isNeedIndicatorPositionChangeItem; | 16 | +@property (nonatomic, strong) UIPageViewController *pageViewController; |
| 17 | +@property (nonatomic, strong) UIScrollView *findScrollView; | ||
| 18 | +@property (nonatomic, strong) NSMutableArray *titles; | ||
| 19 | +@property (nonatomic, strong) NSMutableArray *controllersArr;/// 控制器数组 | ||
| 20 | + | ||
| 21 | +@property (nonatomic, assign) NSInteger ld_currentIndex; //当前选中 | ||
| 18 | 22 | ||
| 23 | +-(void)addTheFirstPage; //默认页 | ||
| 19 | -(JXCategoryBaseView *)preferredCategoryView; | 24 | -(JXCategoryBaseView *)preferredCategoryView; |
| 20 | -(CGFloat)preferredCategoryViewHeight; | 25 | -(CGFloat)preferredCategoryViewHeight; |
| 21 | @end | 26 | @end |
CNLiveVideoClassifyKit/Classes/Controller/CNCategoryBaseViewController.m
| @@ -6,22 +6,21 @@ | @@ -6,22 +6,21 @@ | ||
| 6 | // 分类控制器根类 | 6 | // 分类控制器根类 |
| 7 | 7 | ||
| 8 | #import "CNCategoryBaseViewController.h" | 8 | #import "CNCategoryBaseViewController.h" |
| 9 | -#import "CNLiveListManager.h" | ||
| 10 | - | ||
| 11 | 9 | ||
| 12 | @interface CNCategoryBaseViewController () | 10 | @interface CNCategoryBaseViewController () |
| 13 | - | ||
| 14 | @end | 11 | @end |
| 15 | 12 | ||
| 16 | @implementation CNCategoryBaseViewController | 13 | @implementation CNCategoryBaseViewController |
| 17 | 14 | ||
| 18 | - (void)viewDidLoad { | 15 | - (void)viewDidLoad { |
| 19 | [super viewDidLoad]; | 16 | [super viewDidLoad]; |
| 20 | - | 17 | + self.navigationController.navigationBarHidden = YES; |
| 21 | [self.view addSubview: self.categoryView]; | 18 | [self.view addSubview: self.categoryView]; |
| 22 | - [self.view addSubview:self.listContainerView]; | 19 | + [self addChildViewController:self.pageViewController]; |
| 20 | + [self.view addSubview:self.pageViewController.view]; | ||
| 23 | self.view.backgroundColor = [UIColor whiteColor]; | 21 | self.view.backgroundColor = [UIColor whiteColor]; |
| 24 | self.navigationHidden = YES; | 22 | self.navigationHidden = YES; |
| 23 | + | ||
| 25 | // Do any additional setup after loading the view. | 24 | // Do any additional setup after loading the view. |
| 26 | } | 25 | } |
| 27 | 26 | ||
| @@ -30,17 +29,23 @@ | @@ -30,17 +29,23 @@ | ||
| 30 | [super viewDidLayoutSubviews]; | 29 | [super viewDidLayoutSubviews]; |
| 31 | 30 | ||
| 32 | self.categoryView.frame = CGRectMake(0, kStatusHeight, self.view.bounds.size.width, [self preferredCategoryViewHeight]); | 31 | self.categoryView.frame = CGRectMake(0, kStatusHeight, self.view.bounds.size.width, [self preferredCategoryViewHeight]); |
| 33 | - self.listContainerView.frame = CGRectMake(0, [self preferredCategoryViewHeight] +kStatusHeight, self.view.bounds.size.width, self.view.bounds.size.height - [self preferredCategoryViewHeight]-kStatusHeight); | ||
| 34 | } | 32 | } |
| 35 | -(void)viewWillAppear:(BOOL)animated | 33 | -(void)viewWillAppear:(BOOL)animated |
| 36 | { | 34 | { |
| 37 | [super viewWillAppear:animated]; | 35 | [super viewWillAppear:animated]; |
| 38 | - self.navigationController.interactivePopGestureRecognizer.enabled = YES; | 36 | + self.navigationController.interactivePopGestureRecognizer.enabled = NO; |
| 39 | self.navigationHidden = YES; | 37 | self.navigationHidden = YES; |
| 40 | 38 | ||
| 41 | } | 39 | } |
| 42 | 40 | ||
| 43 | #pragma mark - Public | 41 | #pragma mark - Public |
| 42 | +-(void)addTheFirstPage{ | ||
| 43 | + UIViewController *vc = self.controllersArr[self.ld_currentIndex]; | ||
| 44 | + [self.pageViewController setViewControllers:@[vc] direction:UIPageViewControllerNavigationDirectionReverse animated:YES completion:nil]; | ||
| 45 | +} | ||
| 46 | +- (void)configCategoryViewWithType:(JXCategoryTitleImageType)imageType selectIndex:(NSInteger)index unselectIndex:(NSInteger)unIndex{ | ||
| 47 | + | ||
| 48 | +} | ||
| 44 | -(JXCategoryBaseView *)preferredCategoryView{ | 49 | -(JXCategoryBaseView *)preferredCategoryView{ |
| 45 | return [[JXCategoryBaseView alloc] init]; | 50 | return [[JXCategoryBaseView alloc] init]; |
| 46 | } | 51 | } |
| @@ -49,23 +54,58 @@ | @@ -49,23 +54,58 @@ | ||
| 49 | { | 54 | { |
| 50 | return 50; | 55 | return 50; |
| 51 | } | 56 | } |
| 57 | + | ||
| 58 | +#pragma mark - UIPageViewControllerDataSource | ||
| 59 | +/// 展示上一页 | ||
| 60 | +- (nullable UIViewController *)pageViewController:(UIPageViewController *)pageViewController viewControllerBeforeViewController:(UIViewController *)viewController { | ||
| 61 | + NSInteger index = self.ld_currentIndex; | ||
| 62 | + if (index == 0 || (index == NSNotFound)) { | ||
| 63 | + return nil; | ||
| 64 | + } | ||
| 65 | + index--; | ||
| 66 | + self.ld_currentIndex = index; | ||
| 67 | +// [self.categoryView.delegate categoryView:self.categoryView didSelectedItemAtIndex:self.ld_currentIndex]; | ||
| 68 | + return [self.controllersArr objectAtIndex:index]; | ||
| 69 | +} | ||
| 70 | +/// 展示下一页 | ||
| 71 | +- (nullable UIViewController *)pageViewController:(UIPageViewController *)pageViewController viewControllerAfterViewController:(UIViewController *)viewController { | ||
| 72 | + NSInteger index = self.ld_currentIndex; | ||
| 73 | + if (index == self.controllersArr.count - 1 || (index == NSNotFound)) { | ||
| 74 | + return nil; | ||
| 75 | + } | ||
| 76 | + index++; | ||
| 77 | + self.ld_currentIndex = index; | ||
| 78 | +// [self.categoryView.delegate categoryView:self.categoryView didSelectedItemAtIndex:self.ld_currentIndex]; | ||
| 79 | + return [self.controllersArr objectAtIndex:index]; | ||
| 80 | +} | ||
| 81 | + | ||
| 82 | +#pragma mark - UIPageViewControllerDelegate | ||
| 83 | +- (void)pageViewController:(UIPageViewController *)pageViewController willTransitionToViewControllers:(NSArray<UIViewController *> *)pendingViewControllers { | ||
| 84 | + UIViewController *nextVC = [pendingViewControllers firstObject]; | ||
| 85 | + NSInteger index = [self.controllersArr indexOfObject:nextVC]; | ||
| 86 | + self.ld_currentIndex = index; | ||
| 87 | +} | ||
| 88 | +- (void)pageViewController:(UIPageViewController *)pageViewController didFinishAnimating:(BOOL)finished previousViewControllers:(NSArray<UIViewController *> *)previousViewControllers transitionCompleted:(BOOL)completed { | ||
| 89 | + if (completed) { | ||
| 90 | + NSIndexPath *path = [NSIndexPath indexPathForRow:self.ld_currentIndex inSection:0]; | ||
| 91 | + [self.categoryView.collectionView scrollToItemAtIndexPath:path atScrollPosition:UICollectionViewScrollPositionCenteredHorizontally animated:YES]; | ||
| 92 | + [self.categoryView.delegate categoryView:self.categoryView didSelectedItemAtIndex:self.ld_currentIndex]; | ||
| 93 | + [self.categoryView selectCellAtIndex:self.ld_currentIndex selectedType:JXCategoryCellSelectedTypeScroll]; | ||
| 94 | + } | ||
| 95 | +} | ||
| 52 | #pragma mark - JXCategoryViewDelegate | 96 | #pragma mark - JXCategoryViewDelegate |
| 53 | -(void)categoryView:(JXCategoryBaseView *)categoryView didSelectedItemAtIndex:(NSInteger)index | 97 | -(void)categoryView:(JXCategoryBaseView *)categoryView didSelectedItemAtIndex:(NSInteger)index |
| 54 | { | 98 | { |
| 55 | self.navigationController.interactivePopGestureRecognizer.enabled = (index ==0); | 99 | self.navigationController.interactivePopGestureRecognizer.enabled = (index ==0); |
| 100 | + UIViewController *vc = self.controllersArr[index]; | ||
| 101 | + if (index>self.ld_currentIndex) { | ||
| 102 | + [self.pageViewController setViewControllers:@[vc] direction:UIPageViewControllerNavigationDirectionForward animated:YES completion:NULL]; | ||
| 103 | + }else | ||
| 104 | + { | ||
| 105 | + [self.pageViewController setViewControllers:@[vc] direction:UIPageViewControllerNavigationDirectionReverse animated:YES completion:NULL]; | ||
| 106 | + } | ||
| 56 | } | 107 | } |
| 57 | 108 | ||
| 58 | -#pragma mark - JXCategoryListContainerViewDelegate | ||
| 59 | -- (NSInteger)numberOfListsInlistContainerView:(JXCategoryListContainerView *)listContainerView | ||
| 60 | -{ | ||
| 61 | - return self.titles.count; | ||
| 62 | -} | ||
| 63 | - | ||
| 64 | --(id<JXCategoryListContentViewDelegate>)listContainerView:(JXCategoryListContainerView *)listContainerView initListForIndex:(NSInteger)index | ||
| 65 | -{ | ||
| 66 | - CNLiveListManager *list = [CNLiveListManager new]; | ||
| 67 | - return list; | ||
| 68 | -} | ||
| 69 | 109 | ||
| 70 | #pragma mark - Getting | 110 | #pragma mark - Getting |
| 71 | -(JXCategoryBaseView *)categoryView | 111 | -(JXCategoryBaseView *)categoryView |
| @@ -73,21 +113,30 @@ | @@ -73,21 +113,30 @@ | ||
| 73 | if (!_categoryView) { | 113 | if (!_categoryView) { |
| 74 | _categoryView = [self preferredCategoryView]; | 114 | _categoryView = [self preferredCategoryView]; |
| 75 | _categoryView.delegate = self; | 115 | _categoryView.delegate = self; |
| 76 | - _categoryView.listContainer = self.listContainerView; | ||
| 77 | } | 116 | } |
| 78 | return _categoryView; | 117 | return _categoryView; |
| 79 | } | 118 | } |
| 80 | - | ||
| 81 | -- (JXCategoryListContainerView *)listContainerView | 119 | +-(UIPageViewController *)pageViewController |
| 82 | { | 120 | { |
| 83 | - if (!_listContainerView) { | ||
| 84 | - _listContainerView = [[JXCategoryListContainerView alloc] initWithType:JXCategoryListContainerType_ScrollView delegate:self]; | ||
| 85 | - _listContainerView.scrollView.backgroundColor = [UIColor clearColor]; | ||
| 86 | - _listContainerView.listCellBackgroundColor = [UIColor clearColor]; | 121 | + if (!_pageViewController) { |
| 122 | + NSDictionary *option = [NSDictionary dictionaryWithObject:[NSNumber numberWithInteger:0] forKey:UIPageViewControllerOptionInterPageSpacingKey]; | ||
| 123 | + _pageViewController = [[UIPageViewController alloc]initWithTransitionStyle:UIPageViewControllerTransitionStyleScroll navigationOrientation:UIPageViewControllerNavigationOrientationHorizontal options:option]; | ||
| 124 | + _pageViewController.delegate = self; | ||
| 125 | + _pageViewController.dataSource = self; | ||
| 87 | } | 126 | } |
| 88 | - return _listContainerView; | 127 | + return _pageViewController; |
| 128 | + | ||
| 89 | } | 129 | } |
| 130 | +- (UIScrollView *)findScrollView{ | ||
| 131 | +for(id subview in self.pageViewController.view.subviews){ | ||
| 132 | +if([subview isKindOfClass:UIScrollView.class]){ | ||
| 133 | + _findScrollView=subview; | ||
| 134 | + break; | ||
| 135 | +} | ||
| 136 | +} | ||
| 137 | +return _findScrollView; | ||
| 90 | 138 | ||
| 139 | +} | ||
| 91 | -(NSMutableArray *)titles | 140 | -(NSMutableArray *)titles |
| 92 | { | 141 | { |
| 93 | if (!_titles) { | 142 | if (!_titles) { |
| @@ -95,4 +144,13 @@ | @@ -95,4 +144,13 @@ | ||
| 95 | } | 144 | } |
| 96 | return _titles; | 145 | return _titles; |
| 97 | } | 146 | } |
| 147 | + | ||
| 148 | +-(NSMutableArray *)controllersArr | ||
| 149 | +{ | ||
| 150 | + if (!_controllersArr) { | ||
| 151 | + _controllersArr = [[NSMutableArray alloc] init]; | ||
| 152 | + } | ||
| 153 | + return _controllersArr; | ||
| 154 | +} | ||
| 155 | + | ||
| 98 | @end | 156 | @end |
CNLiveVideoClassifyKit/Classes/Controller/CNLiveClassifySegmentController.m
| @@ -26,7 +26,6 @@ static const CGFloat animationHeight = 15; | @@ -26,7 +26,6 @@ static const CGFloat animationHeight = 15; | ||
| 26 | @property (nonatomic, assign) CGFloat topBgImgHeight;//头部图片高度 | 26 | @property (nonatomic, assign) CGFloat topBgImgHeight;//头部图片高度 |
| 27 | @property (nonatomic, assign) CGFloat lastOffsetY; | 27 | @property (nonatomic, assign) CGFloat lastOffsetY; |
| 28 | 28 | ||
| 29 | -@property (nonatomic, assign) NSInteger currentIndex;//当前页 | ||
| 30 | 29 | ||
| 31 | @property (nonatomic, strong) NSString * currentAtatusColor; | 30 | @property (nonatomic, strong) NSString * currentAtatusColor; |
| 32 | 31 | ||
| @@ -53,7 +52,7 @@ static CGFloat moveHeight = 50; | @@ -53,7 +52,7 @@ static CGFloat moveHeight = 50; | ||
| 53 | [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(classifyChannelsRequest:) name:CNWjjClassifyChannelsRequestStateNotifiName object:nil]; | 52 | [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(classifyChannelsRequest:) name:CNWjjClassifyChannelsRequestStateNotifiName object:nil]; |
| 54 | [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(classifyChannelsRequestedHideLoading:) name:CNWjjClassifyChannelsRequestHideLoadingNotifiName object:nil]; | 53 | [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(classifyChannelsRequestedHideLoading:) name:CNWjjClassifyChannelsRequestHideLoadingNotifiName object:nil]; |
| 55 | self.topBgImgHeight = kStatusHeight+100; | 54 | self.topBgImgHeight = kStatusHeight+100; |
| 56 | - self.currentIndex = 0; | 55 | + self.ld_currentIndex = 0; |
| 57 | [self.view addSubview:self.topBgImg]; | 56 | [self.view addSubview:self.topBgImg]; |
| 58 | [self.view sendSubviewToBack:self.topBgImg]; | 57 | [self.view sendSubviewToBack:self.topBgImg]; |
| 59 | [self dataDivideIntoNormalAndOtherWithFirst:YES]; | 58 | [self dataDivideIntoNormalAndOtherWithFirst:YES]; |
| @@ -64,7 +63,6 @@ static CGFloat moveHeight = 50; | @@ -64,7 +63,6 @@ static CGFloat moveHeight = 50; | ||
| 64 | { | 63 | { |
| 65 | [self.view addSubview:self.loginBtn]; | 64 | [self.view addSubview:self.loginBtn]; |
| 66 | } | 65 | } |
| 67 | - self.myCategoryView.delegate = self; | ||
| 68 | 66 | ||
| 69 | self.myCategoryView.translatesAutoresizingMaskIntoConstraints = NO; | 67 | self.myCategoryView.translatesAutoresizingMaskIntoConstraints = NO; |
| 70 | self.myCategoryView.titleColorGradientEnabled = YES; | 68 | self.myCategoryView.titleColorGradientEnabled = YES; |
| @@ -78,7 +76,6 @@ static CGFloat moveHeight = 50; | @@ -78,7 +76,6 @@ static CGFloat moveHeight = 50; | ||
| 78 | self.myCategoryView.cellWidthZoomEnabled = YES; | 76 | self.myCategoryView.cellWidthZoomEnabled = YES; |
| 79 | self.myCategoryView.cellWidthZoomScale = 1.3; | 77 | self.myCategoryView.cellWidthZoomScale = 1.3; |
| 80 | self.myCategoryView.imageSize = CGSizeMake(56, 18); | 78 | self.myCategoryView.imageSize = CGSizeMake(56, 18); |
| 81 | - self.listContainerView.translatesAutoresizingMaskIntoConstraints = NO; | ||
| 82 | if (!self.isLoading) { | 79 | if (!self.isLoading) { |
| 83 | [self uploadSubViews]; | 80 | [self uploadSubViews]; |
| 84 | } | 81 | } |
| @@ -89,7 +86,7 @@ static CGFloat moveHeight = 50; | @@ -89,7 +86,7 @@ static CGFloat moveHeight = 50; | ||
| 89 | -(void)viewDidLayoutSubviews | 86 | -(void)viewDidLayoutSubviews |
| 90 | { | 87 | { |
| 91 | [super viewDidLayoutSubviews]; | 88 | [super viewDidLayoutSubviews]; |
| 92 | - self.listContainerView.frame = CGRectMake(0,self.myCategoryView.bottom, kScreenWidth, self.view.height -kStatusHeight); | 89 | + self.pageViewController.view.frame = CGRectMake(0, self.myCategoryView.bottom, kScreenWidth, self.view.bounds.size.height - self.myCategoryView.bottom+ moveHeight); |
| 93 | if ([CNUserShareManager isLogin]) { | 90 | if ([CNUserShareManager isLogin]) { |
| 94 | self.myCategoryView.width = kScreenWidth - 45; | 91 | self.myCategoryView.width = kScreenWidth - 45; |
| 95 | self.customChannelsBtn.centerY = self.myCategoryView.centerY; | 92 | self.customChannelsBtn.centerY = self.myCategoryView.centerY; |
| @@ -130,8 +127,8 @@ static CGFloat moveHeight = 50; | @@ -130,8 +127,8 @@ static CGFloat moveHeight = 50; | ||
| 130 | } | 127 | } |
| 131 | - (void)uploadSubViews | 128 | - (void)uploadSubViews |
| 132 | { | 129 | { |
| 133 | - if (self.currentIndex>=self.titles.count) { | ||
| 134 | - self.currentIndex = 0; | 130 | + if (self.ld_currentIndex>=self.titles.count) { |
| 131 | + self.ld_currentIndex = 0; | ||
| 135 | } | 132 | } |
| 136 | for (int i = 0;i<self.imageNames.count;i++) { | 133 | for (int i = 0;i<self.imageNames.count;i++) { |
| 137 | NSURL *url = [NSURL URLWithString:self.imageNames[i]]; | 134 | NSURL *url = [NSURL URLWithString:self.imageNames[i]]; |
| @@ -139,16 +136,48 @@ static CGFloat moveHeight = 50; | @@ -139,16 +136,48 @@ static CGFloat moveHeight = 50; | ||
| 139 | } | 136 | } |
| 140 | //分类控制器基础配置 | 137 | //分类控制器基础配置 |
| 141 | self.myCategoryView.titles = self.titles; | 138 | self.myCategoryView.titles = self.titles; |
| 142 | - self.myCategoryView.delegate = self; | ||
| 143 | self.myCategoryView.imageURLs = self.imageNames; | 139 | self.myCategoryView.imageURLs = self.imageNames; |
| 144 | - self.myCategoryView.defaultSelectedIndex = self.currentIndex; | 140 | + self.myCategoryView.defaultSelectedIndex = self.ld_currentIndex; |
| 145 | self.myCategoryView.loadImageCallback = ^(UIImageView *imageView, NSURL *imageURL) { | 141 | self.myCategoryView.loadImageCallback = ^(UIImageView *imageView, NSURL *imageURL) { |
| 146 | [imageView sd_setImageWithURL:imageURL]; | 142 | [imageView sd_setImageWithURL:imageURL]; |
| 147 | }; | 143 | }; |
| 148 | - [self updateSelectColors:self.currentIndex]; | ||
| 149 | - [self configCategoryViewWithType:JXCategoryTitleImageType_OnlyImage selectIndex:self.currentIndex unselectIndex:self.currentIndex]; | 144 | + [self updateSelectColors:self.ld_currentIndex]; |
| 145 | + [self configCategoryViewWithType:JXCategoryTitleImageType_OnlyImage selectIndex:self.ld_currentIndex unselectIndex:self.ld_currentIndex]; | ||
| 146 | + | ||
| 147 | + | ||
| 148 | + for (int i = 0; i<self.titles.count; i++) { | ||
| 149 | + CNCategoryGetChannelModel *model = self.dataArray[i]; | ||
| 150 | + BOOL isBlack = NO; | ||
| 151 | + if (CNLiveStringIsEmpty(model.statusBarColor)) { | ||
| 152 | + isBlack = YES; | ||
| 153 | + } else { | ||
| 154 | + isBlack = [model.statusBarColor boolValue];//1 黑色 | ||
| 155 | + } | ||
| 156 | + if (model.pageStyleList.count>0) { | ||
| 157 | + self.topBgImg.frame = CGRectMake(0, 0, KScreenWidth, self.topBgImgHeight); | ||
| 158 | + CNLiveSubSegmentController *subVC = [[CNLiveSubSegmentController alloc] initWithModel:model]; | ||
| 159 | + subVC.isBlack = isBlack; | ||
| 160 | + weakself | ||
| 161 | + subVC.scrollViewDidScrollBlock = ^(BOOL isUp) { | ||
| 162 | + [weakSelf scrollViewUpDowm:isUp]; | ||
| 163 | + }; | ||
| 164 | + | ||
| 165 | + [self.controllersArr addObject:subVC]; | ||
| 166 | + }else{ | ||
| 167 | + self.topBgImg.frame = CGRectMake(0, 0, KScreenWidth, self.topBgImgHeight - 50); | ||
| 168 | + CNLiveListManager *list = [CNLiveListManager shareListManager]; | ||
| 169 | + UIViewController *listVC = [list model:model black:isBlack bgImage:self.bgImages[i] bgColor:model.backgroundColor bgImageH5:model.backgroundImgH5]; | ||
| 170 | + weakself | ||
| 171 | + list.scrollViewDidScrollBlock = ^(BOOL isUp) { | ||
| 172 | + [weakSelf scrollViewUpDowm:isUp]; | ||
| 173 | + }; | ||
| 174 | + [self.controllersArr addObject:listVC]; | ||
| 175 | + } | ||
| 176 | + } | ||
| 177 | + [self addTheFirstPage]; | ||
| 150 | } | 178 | } |
| 151 | 179 | ||
| 180 | + | ||
| 152 | #pragma mark - 通知的监听方法 Notification | 181 | #pragma mark - 通知的监听方法 Notification |
| 153 | // 分类接口请求成功或者失败 | 182 | // 分类接口请求成功或者失败 |
| 154 | - (void)classifyChannelsRequest:(NSNotification *)noti { | 183 | - (void)classifyChannelsRequest:(NSNotification *)noti { |
| @@ -359,6 +388,7 @@ static CGFloat moveHeight = 50; | @@ -359,6 +388,7 @@ static CGFloat moveHeight = 50; | ||
| 359 | [self.textColors removeAllObjects]; | 388 | [self.textColors removeAllObjects]; |
| 360 | [self.textColorSeleteds removeAllObjects]; | 389 | [self.textColorSeleteds removeAllObjects]; |
| 361 | [self.statusBarColors removeAllObjects]; | 390 | [self.statusBarColors removeAllObjects]; |
| 391 | + [self.controllersArr removeAllObjects]; | ||
| 362 | for (NSString *str in normalArray) { | 392 | for (NSString *str in normalArray) { |
| 363 | NSDictionary *dic = CNLiveStringJsonToDictionary(str); | 393 | NSDictionary *dic = CNLiveStringJsonToDictionary(str); |
| 364 | CNCategoryGetChannelModel *model = [CNCategoryGetChannelModel mj_objectWithKeyValues:dic]; | 394 | CNCategoryGetChannelModel *model = [CNCategoryGetChannelModel mj_objectWithKeyValues:dic]; |
| @@ -423,7 +453,7 @@ static CGFloat moveHeight = 50; | @@ -423,7 +453,7 @@ static CGFloat moveHeight = 50; | ||
| 423 | [self managerScrollView:YES]; | 453 | [self managerScrollView:YES]; |
| 424 | self.topBgImg.top -= moveHeight; | 454 | self.topBgImg.top -= moveHeight; |
| 425 | self.myCategoryView.collectionView.top = -50-kStatusHeight; | 455 | self.myCategoryView.collectionView.top = -50-kStatusHeight; |
| 426 | - self.listContainerView.top = kStatusHeight; | 456 | + self.pageViewController.view.top = kStatusHeight; |
| 427 | } | 457 | } |
| 428 | -(void)scrollViewDown{ | 458 | -(void)scrollViewDown{ |
| 429 | if (self.topBgImg.top==0) { | 459 | if (self.topBgImg.top==0) { |
| @@ -432,19 +462,17 @@ static CGFloat moveHeight = 50; | @@ -432,19 +462,17 @@ static CGFloat moveHeight = 50; | ||
| 432 | [self managerScrollView:NO]; | 462 | [self managerScrollView:NO]; |
| 433 | self.topBgImg.top += moveHeight; | 463 | self.topBgImg.top += moveHeight; |
| 434 | self.myCategoryView.collectionView.top = 0; | 464 | self.myCategoryView.collectionView.top = 0; |
| 435 | - self.listContainerView.top = self.myCategoryView.bottom; | 465 | + self.pageViewController.view.top = self.myCategoryView.bottom; |
| 436 | 466 | ||
| 437 | } | 467 | } |
| 438 | 468 | ||
| 439 | -(void)managerScrollView:(BOOL)enabled | 469 | -(void)managerScrollView:(BOOL)enabled |
| 440 | { | 470 | { |
| 441 | - self.listContainerView.scrollView.scrollEnabled = !enabled; | ||
| 442 | - for (UIView *view in self.listContainerView.scrollView.subviews) { | ||
| 443 | - if ([view.viewController isKindOfClass:[CNLiveSubSegmentController class]]) { | ||
| 444 | - CNLiveSubSegmentController *subVc = (CNLiveSubSegmentController *)view.viewController; | ||
| 445 | - [subVc layoutRightSubViewWithShow:!enabled]; | ||
| 446 | - } | ||
| 447 | - } | 471 | + self.findScrollView.scrollEnabled = !enabled; |
| 472 | + if ([self.pageViewController.viewControllers.firstObject isKindOfClass:[CNLiveSubSegmentController class]]) { | ||
| 473 | + CNLiveSubSegmentController *subVc = (CNLiveSubSegmentController *)self.pageViewController.viewControllers.firstObject; | ||
| 474 | + [subVc layoutRightSubViewWithShow:!enabled]; | ||
| 475 | + } | ||
| 448 | } | 476 | } |
| 449 | #pragma mark - CNCustomChannelListViewDelegate !!!!!!!!!!!!!!!!!!!!!! | 477 | #pragma mark - CNCustomChannelListViewDelegate !!!!!!!!!!!!!!!!!!!!!! |
| 450 | - (void)changeChannelsList | 478 | - (void)changeChannelsList |
| @@ -492,51 +520,20 @@ static CGFloat moveHeight = 50; | @@ -492,51 +520,20 @@ static CGFloat moveHeight = 50; | ||
| 492 | } | 520 | } |
| 493 | 521 | ||
| 494 | #pragma mark - JXCategoryViewDelegate | 522 | #pragma mark - JXCategoryViewDelegate |
| 495 | -// 正在滚动中的回调,这里调整背景图片的 alpha 透明度 | ||
| 496 | -- (void)categoryView:(JXCategoryBaseView *)categoryView scrollingFromLeftIndex:(NSInteger)leftIndex toRightIndex:(NSInteger)rightIndex ratio:(CGFloat)ratio { | ||
| 497 | - [self configCategoryViewWithType:JXCategoryTitleImageType_OnlyImage selectIndex:leftIndex unselectIndex:rightIndex]; | ||
| 498 | -} | ||
| 499 | - | ||
| 500 | - | ||
| 501 | - (void)categoryView:(JXCategoryBaseView *)categoryView didSelectedItemAtIndex:(NSInteger)index { | 523 | - (void)categoryView:(JXCategoryBaseView *)categoryView didSelectedItemAtIndex:(NSInteger)index { |
| 502 | NSLog(@"%@", NSStringFromSelector(_cmd)); | 524 | NSLog(@"%@", NSStringFromSelector(_cmd)); |
| 503 | - self.currentIndex = index; | 525 | + UIViewController *vc = self.controllersArr[index]; |
| 526 | + if (index>self.ld_currentIndex) { | ||
| 527 | + [self.pageViewController setViewControllers:@[vc] direction:UIPageViewControllerNavigationDirectionForward animated:YES completion:NULL]; | ||
| 528 | + }else | ||
| 529 | + { | ||
| 530 | + [self.pageViewController setViewControllers:@[vc] direction:UIPageViewControllerNavigationDirectionReverse animated:YES completion:NULL]; | ||
| 531 | + } | ||
| 504 | // 侧滑手势处理 | 532 | // 侧滑手势处理 |
| 505 | self.navigationController.interactivePopGestureRecognizer.enabled = (index == 0); | 533 | self.navigationController.interactivePopGestureRecognizer.enabled = (index == 0); |
| 506 | [self updateSelectColors:index]; | 534 | [self updateSelectColors:index]; |
| 507 | [self configCategoryViewWithType:JXCategoryTitleImageType_OnlyImage selectIndex:index unselectIndex:index]; | 535 | [self configCategoryViewWithType:JXCategoryTitleImageType_OnlyImage selectIndex:index unselectIndex:index]; |
| 508 | -} | ||
| 509 | -#pragma mark - JXCategoryListContainerViewDelegate | ||
| 510 | --(id<JXCategoryListContentViewDelegate>)listContainerView:(JXCategoryListContainerView *)listContainerView initListForIndex:(NSInteger)index | ||
| 511 | -{ | ||
| 512 | - CNCategoryGetChannelModel *model = self.dataArray[index]; | ||
| 513 | - BOOL isBlack = NO; | ||
| 514 | - if (CNLiveStringIsEmpty(model.statusBarColor)) { | ||
| 515 | - isBlack = YES; | ||
| 516 | - } else { | ||
| 517 | - isBlack = [model.statusBarColor boolValue];//1 黑色 | ||
| 518 | - } | ||
| 519 | - if (model.pageStyleList.count>0) { | ||
| 520 | - self.topBgImg.frame = CGRectMake(0, 0, KScreenWidth, self.topBgImgHeight); | ||
| 521 | - CNLiveSubSegmentController *subVC = [[CNLiveSubSegmentController alloc] initWithModel:model]; | ||
| 522 | - subVC.isBlack = isBlack; | ||
| 523 | - weakself | ||
| 524 | - subVC.scrollViewDidScrollBlock = ^(BOOL isUp) { | ||
| 525 | - [weakSelf scrollViewUpDowm:isUp]; | ||
| 526 | - }; | ||
| 527 | - | ||
| 528 | - return subVC; | ||
| 529 | - } | ||
| 530 | - self.topBgImg.frame = CGRectMake(0, 0, KScreenWidth, self.topBgImgHeight - 50); | ||
| 531 | - CNLiveListManager *list = [CNLiveListManager shareListManager]; | ||
| 532 | - UIViewController *listView = [list model:model black:isBlack bgImage:[self.bgImages safetyObjectAtIndex:index] bgColor:model.backgroundColor bgImageH5:model.backgroundImgH5]; | ||
| 533 | - list.contentVC = self; | ||
| 534 | - weakself | ||
| 535 | - list.scrollViewDidScrollBlock = ^(BOOL isUp) { | ||
| 536 | - [weakSelf scrollViewUpDowm:isUp]; | ||
| 537 | - }; | ||
| 538 | - | ||
| 539 | - return listView; | 536 | + |
| 540 | } | 537 | } |
| 541 | #pragma mark - Public | 538 | #pragma mark - Public |
| 542 | -(JXCategoryBaseView *)preferredCategoryView | 539 | -(JXCategoryBaseView *)preferredCategoryView |
CNLiveVideoClassifyKit/Classes/Controller/CNLiveListViewController.h deleted
100644 → 0
| 1 | -// | ||
| 2 | -// CNLiveListViewController.h | ||
| 3 | -// CNLiveVideoClassifyKit | ||
| 4 | -// | ||
| 5 | -// Created by CNLive on 2021/9/10. | ||
| 6 | -// | ||
| 7 | - | ||
| 8 | -#import <CNLiveBaseClass/CNLiveBaseClass.h> | ||
| 9 | - | ||
| 10 | -NS_ASSUME_NONNULL_BEGIN | ||
| 11 | - | ||
| 12 | -@interface CNLiveListViewController : CNLiveBaseViewController | ||
| 13 | - | ||
| 14 | -@end | ||
| 15 | - | ||
| 16 | -NS_ASSUME_NONNULL_END |
CNLiveVideoClassifyKit/Classes/Controller/CNLiveListViewController.m deleted
100644 → 0
| 1 | -// | ||
| 2 | -// CNLiveListViewController.m | ||
| 3 | -// CNLiveVideoClassifyKit | ||
| 4 | -// | ||
| 5 | -// Created by CNLive on 2021/9/10. | ||
| 6 | -// | ||
| 7 | - | ||
| 8 | -#import "CNLiveListViewController.h" | ||
| 9 | - | ||
| 10 | -@interface CNLiveListViewController () | ||
| 11 | - | ||
| 12 | -@end | ||
| 13 | - | ||
| 14 | -@implementation CNLiveListViewController | ||
| 15 | - | ||
| 16 | -- (void)viewDidLoad { | ||
| 17 | - [super viewDidLoad]; | ||
| 18 | - self.navigationHidden = YES; | ||
| 19 | - // Do any additional setup after loading the view. | ||
| 20 | -} | ||
| 21 | - | ||
| 22 | -/* | ||
| 23 | -#pragma mark - Navigation | ||
| 24 | - | ||
| 25 | -// In a storyboard-based application, you will often want to do a little preparation before navigation | ||
| 26 | -- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { | ||
| 27 | - // Get the new view controller using [segue destinationViewController]. | ||
| 28 | - // Pass the selected object to the new view controller. | ||
| 29 | -} | ||
| 30 | -*/ | ||
| 31 | - | ||
| 32 | -@end |
CNLiveVideoClassifyKit/Classes/Controller/CNLiveSubSegmentController.h
| @@ -10,7 +10,7 @@ | @@ -10,7 +10,7 @@ | ||
| 10 | 10 | ||
| 11 | NS_ASSUME_NONNULL_BEGIN | 11 | NS_ASSUME_NONNULL_BEGIN |
| 12 | 12 | ||
| 13 | -@interface CNLiveSubSegmentController : CNCategoryBaseViewController<JXCategoryListContentViewDelegate> | 13 | +@interface CNLiveSubSegmentController : CNCategoryBaseViewController |
| 14 | 14 | ||
| 15 | @property (nonatomic, assign) BOOL isBlack; | 15 | @property (nonatomic, assign) BOOL isBlack; |
| 16 | 16 |
CNLiveVideoClassifyKit/Classes/Controller/CNLiveSubSegmentController.m
| @@ -53,10 +53,11 @@ | @@ -53,10 +53,11 @@ | ||
| 53 | 53 | ||
| 54 | - (void)viewDidLoad { | 54 | - (void)viewDidLoad { |
| 55 | [super viewDidLoad]; | 55 | [super viewDidLoad]; |
| 56 | + [self handleDateWithChannelsArray]; | ||
| 56 | // 添加二级频道右侧的搜索按钮 | 57 | // 添加二级频道右侧的搜索按钮 |
| 57 | [self.view addSubview:self.searchBtn]; | 58 | [self.view addSubview:self.searchBtn]; |
| 58 | self.view.backgroundColor = [UIColor clearColor]; | 59 | self.view.backgroundColor = [UIColor clearColor]; |
| 59 | - [self handleDateWithChannelsArray]; | 60 | + self.findScrollView.scrollEnabled = NO; |
| 60 | self.myCategoryView.titles = self.titles; | 61 | self.myCategoryView.titles = self.titles; |
| 61 | if (CNLiveStringIsEmpty(self.backImage)) { | 62 | if (CNLiveStringIsEmpty(self.backImage)) { |
| 62 | self.view.backgroundColor = CNLiveColorWithHexString(self.backgroundColor); | 63 | self.view.backgroundColor = CNLiveColorWithHexString(self.backgroundColor); |
| @@ -72,7 +73,19 @@ | @@ -72,7 +73,19 @@ | ||
| 72 | lineView.indicatorColor = self.textColor; | 73 | lineView.indicatorColor = self.textColor; |
| 73 | self.myCategoryView.indicators = @[lineView]; | 74 | self.myCategoryView.indicators = @[lineView]; |
| 74 | [self.categoryView reloadData]; | 75 | [self.categoryView reloadData]; |
| 75 | - self.listContainerView.scrollView.scrollEnabled = NO; | 76 | + |
| 77 | + for (int i = 0; i<self.titles.count; i++) { | ||
| 78 | + CNCategoryGetChannelModel *model = self.pageListArr[i]; | ||
| 79 | + CNLiveListManager *list = [CNLiveListManager shareListManager]; | ||
| 80 | + UIViewController *listVC = [list model:model black:_isBlack bgImage:self.backImage bgColor:self.backgroundColor bgImageH5:self.backImageH5]; | ||
| 81 | + | ||
| 82 | + weakself | ||
| 83 | + list.scrollViewDidScrollBlock = ^(BOOL isUp) { | ||
| 84 | + !weakSelf.scrollViewDidScrollBlock ?: weakSelf.scrollViewDidScrollBlock(isUp); | ||
| 85 | + }; | ||
| 86 | + [self.controllersArr addObject:listVC]; | ||
| 87 | + } | ||
| 88 | + [self addTheFirstPage]; | ||
| 76 | // Do any additional setup after loading the view. | 89 | // Do any additional setup after loading the view. |
| 77 | } | 90 | } |
| 78 | -(void)viewDidLayoutSubviews | 91 | -(void)viewDidLayoutSubviews |
| @@ -82,8 +95,7 @@ | @@ -82,8 +95,7 @@ | ||
| 82 | self.searchBtn.centerY = self.myCategoryView.height/2; | 95 | self.searchBtn.centerY = self.myCategoryView.height/2; |
| 83 | self.myCategoryView.top = 0; | 96 | self.myCategoryView.top = 0; |
| 84 | self.myCategoryView.width = self.searchBtn.left; | 97 | self.myCategoryView.width = self.searchBtn.left; |
| 85 | - self.listContainerView.frame = CGRectMake(0, [self preferredCategoryViewHeight]+10, self.view.bounds.size.width, self.view.bounds.size.height - [self preferredCategoryViewHeight]); | ||
| 86 | - | 98 | + self.pageViewController.view.frame = CGRectMake(0, self.myCategoryView.bottom+10, kScreenWidth, self.view.bounds.size.height - self.myCategoryView.bottom); |
| 87 | } | 99 | } |
| 88 | #pragma mark - Method | 100 | #pragma mark - Method |
| 89 | -(void)handleDateWithChannelsArray{ | 101 | -(void)handleDateWithChannelsArray{ |
| @@ -95,8 +107,7 @@ | @@ -95,8 +107,7 @@ | ||
| 95 | } | 107 | } |
| 96 | // 一级频道显示隐藏时二级频道右侧的搜索按钮变宽变窄控制 | 108 | // 一级频道显示隐藏时二级频道右侧的搜索按钮变宽变窄控制 |
| 97 | - (void)layoutRightSubViewWithShow:(BOOL)show { | 109 | - (void)layoutRightSubViewWithShow:(BOOL)show { |
| 98 | - | ||
| 99 | - self.listContainerView.scrollView.scrollEnabled = !show; | 110 | + self.findScrollView.scrollEnabled = !show; |
| 100 | if (show) { | 111 | if (show) { |
| 101 | // 正常 | 112 | // 正常 |
| 102 | 113 | ||
| @@ -137,30 +148,19 @@ | @@ -137,30 +148,19 @@ | ||
| 137 | { | 148 | { |
| 138 | return 40; | 149 | return 40; |
| 139 | } | 150 | } |
| 140 | -#pragma mark - JXCategoryListContainerViewDelegate | ||
| 141 | - | ||
| 142 | --(id<JXCategoryListContentViewDelegate>)listContainerView:(JXCategoryListContainerView *)listContainerView initListForIndex:(NSInteger)index | 151 | +#pragma mark - JXCategoryViewDelegate |
| 152 | +-(void)categoryView:(JXCategoryBaseView *)categoryView didSelectedItemAtIndex:(NSInteger)index | ||
| 143 | { | 153 | { |
| 144 | - CNCategoryGetChannelModel *model = self.pageListArr[index]; | ||
| 145 | - CNLiveListManager *list = [CNLiveListManager shareListManager]; | ||
| 146 | - UIViewController *listView = [list model:model black:_isBlack bgImage:self.backImage bgColor:self.backgroundColor bgImageH5:self.backImageH5]; | ||
| 147 | - list.contentVC = self; | ||
| 148 | - weakself | ||
| 149 | - list.scrollViewDidScrollBlock = ^(BOOL isUp) { | ||
| 150 | - !weakSelf.scrollViewDidScrollBlock ?: weakSelf.scrollViewDidScrollBlock(isUp); | ||
| 151 | - }; | ||
| 152 | - | ||
| 153 | - return listView; | ||
| 154 | -} | ||
| 155 | -#pragma mark - JXCategoryListContentViewDelegate | 154 | + self.navigationController.interactivePopGestureRecognizer.enabled = (index ==0); |
| 155 | + UIViewController *vc = self.controllersArr[index]; | ||
| 156 | + if (index>self.ld_currentIndex) { | ||
| 157 | + [self.pageViewController setViewControllers:@[vc] direction:UIPageViewControllerNavigationDirectionForward animated:YES completion:NULL]; | ||
| 158 | + }else | ||
| 159 | + { | ||
| 160 | + [self.pageViewController setViewControllers:@[vc] direction:UIPageViewControllerNavigationDirectionReverse animated:YES completion:NULL]; | ||
| 161 | + } | ||
| 156 | 162 | ||
| 157 | -/** | ||
| 158 | - 实现 <JXCategoryListContentViewDelegate> 协议方法,返回该视图控制器所拥有的「视图」 | ||
| 159 | - */ | ||
| 160 | -- (UIView *)listView { | ||
| 161 | - return self.view; | ||
| 162 | } | 163 | } |
| 163 | - | ||
| 164 | #pragma mark - Getting&&Setting | 164 | #pragma mark - Getting&&Setting |
| 165 | -(JXCategoryTitleView *)myCategoryView | 165 | -(JXCategoryTitleView *)myCategoryView |
| 166 | { | 166 | { |
CNLiveVideoClassifyKit/Classes/Manager/CNLiveListManager.h
| @@ -7,12 +7,12 @@ | @@ -7,12 +7,12 @@ | ||
| 7 | 7 | ||
| 8 | #import <Foundation/Foundation.h> | 8 | #import <Foundation/Foundation.h> |
| 9 | @class CNCategoryGetChannelModel; | 9 | @class CNCategoryGetChannelModel; |
| 10 | +@class CNLiveListViewController; | ||
| 10 | 11 | ||
| 11 | NS_ASSUME_NONNULL_BEGIN | 12 | NS_ASSUME_NONNULL_BEGIN |
| 12 | 13 | ||
| 13 | -@interface CNLiveListManager : NSObject<JXCategoryListContentViewDelegate> | 14 | +@interface CNLiveListManager : NSObject |
| 14 | @property (nonatomic, copy) void (^scrollViewDidScrollBlock)(BOOL isUp); | 15 | @property (nonatomic, copy) void (^scrollViewDidScrollBlock)(BOOL isUp); |
| 15 | -@property (nonatomic, weak) UIViewController *contentVC; | ||
| 16 | 16 | ||
| 17 | +(instancetype)shareListManager; | 17 | +(instancetype)shareListManager; |
| 18 | 18 |
CNLiveVideoClassifyKit/Classes/Manager/CNLiveListManager.m
| @@ -10,7 +10,6 @@ | @@ -10,7 +10,6 @@ | ||
| 10 | 10 | ||
| 11 | @interface CNLiveListManager() | 11 | @interface CNLiveListManager() |
| 12 | { | 12 | { |
| 13 | - UIViewController *subVC; | ||
| 14 | CGFloat beginoffsetY; | 13 | CGFloat beginoffsetY; |
| 15 | } | 14 | } |
| 16 | @end | 15 | @end |
| @@ -50,7 +49,7 @@ | @@ -50,7 +49,7 @@ | ||
| 50 | @"backgroundImgH5":bgImageH5?bgImageH5:@"" | 49 | @"backgroundImgH5":bgImageH5?bgImageH5:@"" |
| 51 | }; | 50 | }; |
| 52 | } | 51 | } |
| 53 | - subVC = [CNLiveClassifyJumpBridge ListViewWithPageType:model.pageType.integerValue param:paramDic]; | 52 | + UIViewController *subVC = [CNLiveClassifyJumpBridge ListViewWithPageType:model.pageType.integerValue param:paramDic]; |
| 54 | return subVC; | 53 | return subVC; |
| 55 | } | 54 | } |
| 56 | - (void)requestWebViewForScrollView:(nonnull UIScrollView *)scrollView isBeginDragging:(BOOL)isBeginDragging | 55 | - (void)requestWebViewForScrollView:(nonnull UIScrollView *)scrollView isBeginDragging:(BOOL)isBeginDragging |
| @@ -67,13 +66,4 @@ | @@ -67,13 +66,4 @@ | ||
| 67 | } | 66 | } |
| 68 | } | 67 | } |
| 69 | 68 | ||
| 70 | - | ||
| 71 | -#pragma mark - JXCategoryListContentViewDelegate | ||
| 72 | - | ||
| 73 | -/** | ||
| 74 | - 实现 <JXCategoryListContentViewDelegate> 协议方法,返回该视图控制器所拥有的「视图」 | ||
| 75 | - */ | ||
| 76 | -- (UIView *)listView { | ||
| 77 | - return subVC.view; | ||
| 78 | -} | ||
| 79 | @end | 69 | @end |
Example/CNLiveVideoClassifyKit/CNLIVEDemoViewController.m
| @@ -19,7 +19,12 @@ | @@ -19,7 +19,12 @@ | ||
| 19 | self.view.backgroundColor = [UIColor greenColor]; | 19 | self.view.backgroundColor = [UIColor greenColor]; |
| 20 | // Do any additional setup after loading the view. | 20 | // Do any additional setup after loading the view. |
| 21 | } | 21 | } |
| 22 | - | 22 | +-(void)viewDidAppear:(BOOL)animated |
| 23 | +{ | ||
| 24 | + [super viewDidAppear:animated]; | ||
| 25 | + self.navigationController.navigationBarHidden = YES; | ||
| 26 | + | ||
| 27 | +} | ||
| 23 | /* | 28 | /* |
| 24 | #pragma mark - Navigation | 29 | #pragma mark - Navigation |
| 25 | 30 |
Example/CNLiveVideoClassifyKit/CNLIVEViewController.m
| @@ -40,11 +40,17 @@ | @@ -40,11 +40,17 @@ | ||
| 40 | - (void)viewDidLoad | 40 | - (void)viewDidLoad |
| 41 | { | 41 | { |
| 42 | [super viewDidLoad]; | 42 | [super viewDidLoad]; |
| 43 | + | ||
| 43 | [CNTools GetClassifyChannelsUrlsAndSave]; | 44 | [CNTools GetClassifyChannelsUrlsAndSave]; |
| 44 | self.title = @"首页"; | 45 | self.title = @"首页"; |
| 45 | segArr = @[@"分类"]; | 46 | segArr = @[@"分类"]; |
| 46 | [self.view addSubview:self.collectionView]; | 47 | [self.view addSubview:self.collectionView]; |
| 47 | } | 48 | } |
| 49 | +-(void)viewDidAppear:(BOOL)animated | ||
| 50 | +{ | ||
| 51 | + [super viewDidAppear:animated]; | ||
| 52 | + self.navigationController.navigationBarHidden = YES; | ||
| 53 | +} | ||
| 48 | #pragma mrk - UICollectionViewDataSource | 54 | #pragma mrk - UICollectionViewDataSource |
| 49 | - (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section | 55 | - (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section |
| 50 | { | 56 | { |