Commit 641f5b24706b1ed80575f1970546d3a813d1a1d6

Authored by yanglingyu
1 parent a597ca52

头部背景图渐变设计

CNLiveVideoClassifyKit/Classes/ClassifyCategory/Controller/CNLiveClassifySegmentController.m
@@ -26,6 +26,8 @@ static const CGFloat animationHeight = 15; @@ -26,6 +26,8 @@ static const CGFloat animationHeight = 15;
26 @property (nonatomic, strong) CNCustomChannelListView *customChannelsV;//频道控制器窗口 26 @property (nonatomic, strong) CNCustomChannelListView *customChannelsV;//频道控制器窗口
27 @property (nonatomic, strong) UIView *fuzzyView;//游客登录弹框 27 @property (nonatomic, strong) UIView *fuzzyView;//游客登录弹框
28 @property (nonatomic, strong) UIImageView *topBgImg; //头部图片 28 @property (nonatomic, strong) UIImageView *topBgImg; //头部图片
  29 +@property (nonatomic, strong) UIImageView *indicatorImg;// 渐变图片
  30 +
29 @property (nonatomic, assign) CGFloat topBgImgHeight;//头部图片高度 31 @property (nonatomic, assign) CGFloat topBgImgHeight;//头部图片高度
30 32
31 @property (nonatomic, strong) NSString * currentAtatusColor; 33 @property (nonatomic, strong) NSString * currentAtatusColor;
@@ -67,6 +69,8 @@ static const CGFloat animationHeight = 15; @@ -67,6 +69,8 @@ static const CGFloat animationHeight = 15;
67 self.isLoginIndex = -1; 69 self.isLoginIndex = -1;
68 [self.view addSubview:self.topBgImg]; 70 [self.view addSubview:self.topBgImg];
69 [self.view sendSubviewToBack:self.topBgImg]; 71 [self.view sendSubviewToBack:self.topBgImg];
  72 + [self.view addSubview:self.indicatorImg];
  73 + [self.view insertSubview:self.indicatorImg belowSubview:self.topBgImg];
70 [self dataDivideIntoNormalAndOtherWithFirst:YES]; 74 [self dataDivideIntoNormalAndOtherWithFirst:YES];
71 [self handleDateWithChannelsArray]; 75 [self handleDateWithChannelsArray];
72 76
@@ -406,6 +410,8 @@ static const CGFloat animationHeight = 15; @@ -406,6 +410,8 @@ static const CGFloat animationHeight = 15;
406 }]; 410 }];
407 NSString *backgroundColor = [self.bgColors wjj_safetyObjectAtIndex:index]; 411 NSString *backgroundColor = [self.bgColors wjj_safetyObjectAtIndex:index];
408 self.topBgImg.backgroundColor = CNLiveColorWithHexString(backgroundColor); 412 self.topBgImg.backgroundColor = CNLiveColorWithHexString(backgroundColor);
  413 + self.indicatorImg.alpha = 0;
  414 + self.topBgImg.alpha = 1;
409 self.myCategoryView.titleColor = self.textColors[index]; 415 self.myCategoryView.titleColor = self.textColors[index];
410 self.myCategoryView.titleSelectedColor = self.textColorSeleteds[index]; 416 self.myCategoryView.titleSelectedColor = self.textColorSeleteds[index];
411 if (!self.currentAtatusColor || ![self.currentAtatusColor isEqualToString:self.statusBarColors[index]] ) { 417 if (!self.currentAtatusColor || ![self.currentAtatusColor isEqualToString:self.statusBarColors[index]] ) {
@@ -416,7 +422,38 @@ static const CGFloat animationHeight = 15; @@ -416,7 +422,38 @@ static const CGFloat animationHeight = 15;
416 //配置选中状态显示图片,未选中展示文字 422 //配置选中状态显示图片,未选中展示文字
417 - (void)configCategoryViewWithType:(JXCategoryTitleImageType)imageType selectIndex:(NSInteger)index unselectIndex:(NSInteger)unIndex 423 - (void)configCategoryViewWithType:(JXCategoryTitleImageType)imageType selectIndex:(NSInteger)index unselectIndex:(NSInteger)unIndex
418 { 424 {
  425 + NSString *backgroundImage = [self.bgImages wjj_safetyObjectAtIndex:index];
  426 + weakself
  427 + [self.topBgImg sd_setImageWithURL:[NSURL URLWithString:backgroundImage] completed:^(UIImage * _Nullable image, NSError * _Nullable error, SDImageCacheType cacheType, NSURL * _Nullable imageURL) {
  428 + if (image) {
  429 + weakSelf.topBgImgHeight = KScreenWidth*image.size.height/image.size.width;
  430 + } else {
  431 + weakSelf.topBgImgHeight = kStatusHeight+100;
  432 + }
  433 + if (weakSelf.topBgImgHeight<kStatusHeight+100) {
  434 + weakSelf.topBgImgHeight = kStatusHeight+100;
  435 + }
  436 + weakSelf.topBgImg.height = weakSelf.topBgImgHeight;
  437 + weakSelf.topBgImg.bottom = kStatusHeight+100;
  438 + }];
  439 + NSString *backgroundColor = [self.bgColors wjj_safetyObjectAtIndex:index];
  440 + self.topBgImg.backgroundColor = CNLiveColorWithHexString(backgroundColor);
419 441
  442 + NSString *unBackgroundImage = [self.bgImages wjj_safetyObjectAtIndex:unIndex];
  443 + [self.indicatorImg sd_setImageWithURL:[NSURL URLWithString:unBackgroundImage] completed:^(UIImage * _Nullable image, NSError * _Nullable error, SDImageCacheType cacheType, NSURL * _Nullable imageURL) {
  444 + if (image) {
  445 + weakSelf.topBgImgHeight = KScreenWidth*image.size.height/image.size.width;
  446 + } else {
  447 + weakSelf.topBgImgHeight = kStatusHeight+100;
  448 + }
  449 + if (weakSelf.topBgImgHeight<kStatusHeight+100) {
  450 + weakSelf.topBgImgHeight = kStatusHeight+100;
  451 + }
  452 + weakSelf.indicatorImg.height = weakSelf.topBgImgHeight;
  453 + weakSelf.indicatorImg.bottom = kStatusHeight+100;
  454 + }];
  455 + NSString *unBackgroundColor = [self.bgColors wjj_safetyObjectAtIndex:unIndex];
  456 + self.indicatorImg.backgroundColor = CNLiveColorWithHexString(unBackgroundColor);
420 NSMutableArray *types = [NSMutableArray array]; 457 NSMutableArray *types = [NSMutableArray array];
421 for (int i = 0; i < self.titles.count; i ++) { 458 for (int i = 0; i < self.titles.count; i ++) {
422 if (i == index || i == unIndex) { 459 if (i == index || i == unIndex) {
@@ -860,6 +897,18 @@ static const CGFloat animationHeight = 15; @@ -860,6 +897,18 @@ static const CGFloat animationHeight = 15;
860 } 897 }
861 // [MobClick event:@"channel_click_top"]; 898 // [MobClick event:@"channel_click_top"];
862 } 899 }
  900 +- (void)categoryView:(JXCategoryBaseView *)categoryView scrollingFromLeftIndex:(NSInteger)leftIndex toRightIndex:(NSInteger)rightIndex ratio:(CGFloat)ratio{
  901 +
  902 + if (self.ld_currentIndex == leftIndex) {
  903 + [self configCategoryViewWithType:JXCategoryTitleImageType_OnlyImage selectIndex:leftIndex unselectIndex:rightIndex];
  904 + self.topBgImg.alpha = 1 - ratio;
  905 + self.indicatorImg.alpha = ratio;
  906 + }else{
  907 + [self configCategoryViewWithType:JXCategoryTitleImageType_OnlyImage selectIndex:rightIndex unselectIndex:leftIndex];
  908 + self.topBgImg.alpha = ratio;
  909 + self.indicatorImg.alpha = 1 - ratio;
  910 + }
  911 +}
863 #pragma mark - Public 912 #pragma mark - Public
864 -(JXCategoryBaseView *)preferredCategoryView 913 -(JXCategoryBaseView *)preferredCategoryView
865 { 914 {
@@ -881,6 +930,15 @@ static const CGFloat animationHeight = 15; @@ -881,6 +930,15 @@ static const CGFloat animationHeight = 15;
881 } 930 }
882 return _topBgImg; 931 return _topBgImg;
883 } 932 }
  933 +- (UIImageView *)indicatorImg
  934 +{
  935 + if (!_indicatorImg) {
  936 + _indicatorImg = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, kScreenWidth, self.topBgImgHeight)];
  937 + _indicatorImg.contentMode = UIViewContentModeScaleAspectFill;
  938 + _indicatorImg.alpha = 0;
  939 + }
  940 + return _indicatorImg;
  941 +}
884 942
885 - (UIButton *)customChannelsBtn { 943 - (UIButton *)customChannelsBtn {
886 if (!_customChannelsBtn) { 944 if (!_customChannelsBtn) {