Commit 20967c59ffcb80d00cf2606d76387bf7f19a3a31

Authored by yanglingyu
1 parent 3d9e36a9

no message

CNLiveVideoClassifyKit/Assets/CNSegmentControl.bundle/more_add@2x.png 0 → 100644

747 Bytes

CNLiveVideoClassifyKit/Assets/CNSegmentControl.bundle/more_add@3x.png 0 → 100644

1.35 KB

CNLiveVideoClassifyKit/Assets/CNSegmentControl.bundle/more_reduce@2x.png 0 → 100644

647 Bytes

CNLiveVideoClassifyKit/Assets/CNSegmentControl.bundle/more_reduce@3x.png 0 → 100644

1.18 KB

CNLiveVideoClassifyKit/Assets/CNSegmentControl.bundle/more_zwf@2x.png 0 → 100644

1.72 KB

CNLiveVideoClassifyKit/Assets/CNSegmentControl.bundle/more_zwf@3x.png 0 → 100644

2.98 KB

CNLiveVideoClassifyKit/Classes/Category/UIImage+AdBundleImage.m
@@ -7,18 +7,12 @@ @@ -7,18 +7,12 @@
7 7
8 #import "UIImage+AdBundleImage.h" 8 #import "UIImage+AdBundleImage.h"
9 #import "CNCategoryBaseViewController.h" 9 #import "CNCategoryBaseViewController.h"
  10 +#import <CNLiveCategory/CNLiveCategory.h>
10 11
11 @implementation UIImage (AdBundleImage) 12 @implementation UIImage (AdBundleImage)
12 +(UIImage *)loadBundleImage:(NSString *)imageName{ 13 +(UIImage *)loadBundleImage:(NSString *)imageName{
13 14
14 - // 获取当前的bundle,self只是在当前pod库中的一个类,也可以随意写一个其他的类  
15 - NSBundle *currentBundle = [NSBundle bundleForClass:[CNCategoryBaseViewController class]];  
16 - // 获取屏幕pt和px之间的比例  
17 - NSInteger scale = [UIScreen mainScreen].scale;  
18 - NSString *imagefailName = [NSString stringWithFormat:@"%@@%zdx.png",imageName,scale];  
19 - // 获取图片的路径,其中BMCH5WebView是组件名  
20 - NSString *imagePath = [currentBundle pathForResource:imagefailName ofType:nil inDirectory:[NSString stringWithFormat:@"%@.bundle",@"CNSegmentControl"]];  
21 - // 获取图片  
22 - return [UIImage imageWithContentsOfFile:imagePath]; 15 +
  16 + return [UIImage getImageWithImageName:imageName bundleName:@"CNSegmentControl" targetClass:[CNCategoryBaseViewController class]];
23 } 17 }
24 @end 18 @end
CNLiveVideoClassifyKit/Classes/Controller/CNCategoryBaseViewController.m
@@ -17,7 +17,6 @@ @@ -17,7 +17,6 @@
17 17
18 - (void)viewDidLoad { 18 - (void)viewDidLoad {
19 [super viewDidLoad]; 19 [super viewDidLoad];
20 - [self handleDateWithChannelsArray];  
21 [self.view addSubview: self.categoryView]; 20 [self.view addSubview: self.categoryView];
22 [self.view addSubview:self.listContainerView]; 21 [self.view addSubview:self.listContainerView];
23 self.view.backgroundColor = [UIColor whiteColor]; 22 self.view.backgroundColor = [UIColor whiteColor];
@@ -42,9 +41,6 @@ @@ -42,9 +41,6 @@
42 } 41 }
43 42
44 #pragma mark - Public 43 #pragma mark - Public
45 --(void)handleDateWithChannelsArray{  
46 -  
47 -}  
48 -(JXCategoryBaseView *)preferredCategoryView{ 44 -(JXCategoryBaseView *)preferredCategoryView{
49 return [[JXCategoryBaseView alloc] init]; 45 return [[JXCategoryBaseView alloc] init];
50 } 46 }
CNLiveVideoClassifyKit/Classes/Controller/CNListViewController.m
@@ -41,12 +41,12 @@ @@ -41,12 +41,12 @@
41 } 41 }
42 -(void)dealloc 42 -(void)dealloc
43 { 43 {
44 - for (UIView*subView in subVC.view.subviews) {  
45 - if ([subView isKindOfClass:[WKWebView class]]) {  
46 - WKWebView *webView = (WKWebView *)subView;  
47 - [webView.scrollView removeObserver:self forKeyPath:@"contentOffset"];  
48 - }  
49 - } 44 +// for (UIView*subView in subVC.view.subviews) {
  45 +// if ([subView isKindOfClass:[WKWebView class]]) {
  46 +// WKWebView *webView = (WKWebView *)subView;
  47 +// [webView.scrollView removeObserver:self forKeyPath:@"contentOffset"];
  48 +// }
  49 +// }
50 50
51 } 51 }
52 52
@@ -68,12 +68,12 @@ @@ -68,12 +68,12 @@
68 - (UIView *)listView { 68 - (UIView *)listView {
69 subVC = [CNLiveCWebViewModule showWebVCWithLunchForWebURL:_thirdUrl 69 subVC = [CNLiveCWebViewModule showWebVCWithLunchForWebURL:_thirdUrl
70 ParamDict:_paramDic ShowType:CNLiveWebViewLunchShowTypeHidden]; 70 ParamDict:_paramDic ShowType:CNLiveWebViewLunchShowTypeHidden];
71 - for (UIView*subView in subVC.view.subviews) {  
72 - if ([subView isKindOfClass:[WKWebView class]]) {  
73 - WKWebView *webView = (WKWebView *)subView;  
74 - [webView.scrollView addObserver:self forKeyPath:@"contentOffset" options:NSKeyValueObservingOptionOld context:NULL];  
75 - }  
76 - } 71 +// for (UIView*subView in subVC.view.subviews) {
  72 +// if ([subView isKindOfClass:[WKWebView class]]) {
  73 +// WKWebView *webView = (WKWebView *)subView;
  74 +// [webView.scrollView addObserver:self forKeyPath:@"contentOffset" options:NSKeyValueObservingOptionOld context:NULL];
  75 +// }
  76 +// }
77 77
78 return subVC.view; 78 return subVC.view;
79 } 79 }
CNLiveVideoClassifyKit/Classes/Controller/CNLiveClassifySegmentController.m
@@ -13,7 +13,10 @@ @@ -13,7 +13,10 @@
13 #import "CNLiveSubSegmentController.h" 13 #import "CNLiveSubSegmentController.h"
14 #import <CNLiveCWebViewModule/CNLiveWebViewJumpBridge.h> 14 #import <CNLiveCWebViewModule/CNLiveWebViewJumpBridge.h>
15 15
16 -@interface CNLiveClassifySegmentController ()<JXCategoryViewDelegate> 16 +static const CGFloat animationTime = 0.3;
  17 +static const CGFloat animationHeight = 15;
  18 +
  19 +@interface CNLiveClassifySegmentController ()<JXCategoryViewDelegate,CNCustomChannelListViewDelegate>
17 20
18 @property (nonatomic, strong)JXCategoryTitleImageView *myCategoryView; //选择器 21 @property (nonatomic, strong)JXCategoryTitleImageView *myCategoryView; //选择器
19 @property (nonatomic, strong) UIButton *customChannelsBtn; 22 @property (nonatomic, strong) UIButton *customChannelsBtn;
@@ -37,6 +40,10 @@ @@ -37,6 +40,10 @@
37 @property (nonatomic, strong) NSMutableArray *textColors; //未选中字体颜色 40 @property (nonatomic, strong) NSMutableArray *textColors; //未选中字体颜色
38 @property (nonatomic, strong) NSMutableArray *textColorSeleteds; //选中字体颜色 41 @property (nonatomic, strong) NSMutableArray *textColorSeleteds; //选中字体颜色
39 42
  43 +@property (nonatomic, assign) BOOL hasChanged;
  44 +@property (nonatomic, assign) BOOL isEditing;
  45 +@property (nonatomic, assign) BOOL oldStatusBar;
  46 +
40 @end 47 @end
41 48
42 @implementation CNLiveClassifySegmentController 49 @implementation CNLiveClassifySegmentController
@@ -44,27 +51,20 @@ static CGFloat moveHeight = 50; @@ -44,27 +51,20 @@ static CGFloat moveHeight = 50;
44 - (void)viewDidLoad { 51 - (void)viewDidLoad {
45 [super viewDidLoad]; 52 [super viewDidLoad];
46 self.topBgImgHeight = kStatusHeight+100; 53 self.topBgImgHeight = kStatusHeight+100;
  54 + self.currentIndex = 0;
47 [self.view addSubview:self.topBgImg]; 55 [self.view addSubview:self.topBgImg];
48 [self.view sendSubviewToBack:self.topBgImg]; 56 [self.view sendSubviewToBack:self.topBgImg];
  57 + [self dataDivideIntoNormalAndOtherWithFirst:YES];
  58 + [self handleDateWithChannelsArray];
49 if ([CNUserShareManager isLogin]) { 59 if ([CNUserShareManager isLogin]) {
50 - [self.myCategoryView addSubview:self.customChannelsBtn]; 60 + [self.view addSubview:self.customChannelsBtn];
51 }else 61 }else
52 { 62 {
53 - [self.myCategoryView addSubview:self.loginBtn]; 63 + [self.view addSubview:self.loginBtn];
54 } 64 }
55 -  
56 - for (int i = 0;i<self.imageNames.count;i++) {  
57 - NSURL *url = [NSURL URLWithString:self.imageNames[i]];  
58 - [self.imageNames replaceObjectAtIndex:i withObject:url];  
59 - }  
60 - //分类控制器基础配置  
61 - self.myCategoryView.titles = self.titles;  
62 self.myCategoryView.delegate = self; 65 self.myCategoryView.delegate = self;
  66 +
63 self.myCategoryView.translatesAutoresizingMaskIntoConstraints = NO; 67 self.myCategoryView.translatesAutoresizingMaskIntoConstraints = NO;
64 - self.myCategoryView.imageURLs = self.imageNames;  
65 - self.myCategoryView.loadImageCallback = ^(UIImageView *imageView, NSURL *imageURL) {  
66 - [imageView sd_setImageWithURL:imageURL];  
67 - };  
68 self.myCategoryView.titleColorGradientEnabled = YES; 68 self.myCategoryView.titleColorGradientEnabled = YES;
69 self.myCategoryView.contentEdgeInsetLeft = 10; 69 self.myCategoryView.contentEdgeInsetLeft = 10;
70 self.myCategoryView.titleFont = [UIFont fontWithName:@"PingFangSC-Medium" size:15]; 70 self.myCategoryView.titleFont = [UIFont fontWithName:@"PingFangSC-Medium" size:15];
@@ -76,10 +76,8 @@ static CGFloat moveHeight = 50; @@ -76,10 +76,8 @@ static CGFloat moveHeight = 50;
76 self.myCategoryView.cellWidthZoomEnabled = YES; 76 self.myCategoryView.cellWidthZoomEnabled = YES;
77 self.myCategoryView.cellWidthZoomScale = 1.3; 77 self.myCategoryView.cellWidthZoomScale = 1.3;
78 self.myCategoryView.imageSize = CGSizeMake(56, 18); 78 self.myCategoryView.imageSize = CGSizeMake(56, 18);
79 - [self updateSelectColors:0];  
80 - [self configCategoryViewWithType:JXCategoryTitleImageType_OnlyImage selectIndex:0 unselectIndex:0];  
81 -  
82 self.listContainerView.translatesAutoresizingMaskIntoConstraints = NO; 79 self.listContainerView.translatesAutoresizingMaskIntoConstraints = NO;
  80 + [self uploadSubViews];
83 // Do any additional setup after loading the view. 81 // Do any additional setup after loading the view.
84 } 82 }
85 83
@@ -89,12 +87,12 @@ static CGFloat moveHeight = 50; @@ -89,12 +87,12 @@ static CGFloat moveHeight = 50;
89 self.listContainerView.frame = CGRectMake(0,self.myCategoryView.bottom, kScreenWidth, self.view.height -kStatusHeight); 87 self.listContainerView.frame = CGRectMake(0,self.myCategoryView.bottom, kScreenWidth, self.view.height -kStatusHeight);
90 if ([CNUserShareManager isLogin]) { 88 if ([CNUserShareManager isLogin]) {
91 self.myCategoryView.width = kScreenWidth - 45; 89 self.myCategoryView.width = kScreenWidth - 45;
92 - self.customChannelsBtn.centerY = self.myCategoryView.height/2; 90 + self.customChannelsBtn.centerY = self.myCategoryView.centerY;
93 self.customChannelsBtn.right = kScreenWidth - 18; 91 self.customChannelsBtn.right = kScreenWidth - 18;
94 }else 92 }else
95 { 93 {
96 self.myCategoryView.width = kScreenWidth - 70; 94 self.myCategoryView.width = kScreenWidth - 70;
97 - self.loginBtn.centerY = self.myCategoryView.height/2; 95 + self.loginBtn.centerY = self.myCategoryView.centerY;
98 self.loginBtn.right = kScreenWidth - 11; 96 self.loginBtn.right = kScreenWidth - 11;
99 } 97 }
100 98
@@ -109,7 +107,7 @@ static CGFloat moveHeight = 50; @@ -109,7 +107,7 @@ static CGFloat moveHeight = 50;
109 -(void)viewDidDisappear:(BOOL)animated 107 -(void)viewDidDisappear:(BOOL)animated
110 { 108 {
111 [super viewDidDisappear: animated]; 109 [super viewDidDisappear: animated];
112 - 110 + [self quitCustomChannels];
113 } 111 }
114 112
115 113
@@ -125,11 +123,45 @@ static CGFloat moveHeight = 50; @@ -125,11 +123,45 @@ static CGFloat moveHeight = 50;
125 } 123 }
126 124
127 } 125 }
128 - 126 +- (void)uploadSubViews
  127 +{
  128 + if (self.currentIndex>=self.titles.count) {
  129 + self.currentIndex = 0;
  130 + }
  131 + for (int i = 0;i<self.imageNames.count;i++) {
  132 + NSURL *url = [NSURL URLWithString:self.imageNames[i]];
  133 + [self.imageNames replaceObjectAtIndex:i withObject:url];
  134 + }
  135 + //分类控制器基础配置
  136 + self.myCategoryView.titles = self.titles;
  137 + self.myCategoryView.delegate = self;
  138 + self.myCategoryView.imageURLs = self.imageNames;
  139 + self.myCategoryView.defaultSelectedIndex = self.currentIndex;
  140 + self.myCategoryView.loadImageCallback = ^(UIImageView *imageView, NSURL *imageURL) {
  141 + [imageView sd_setImageWithURL:imageURL];
  142 + };
  143 + [self updateSelectColors:self.currentIndex];
  144 + [self configCategoryViewWithType:JXCategoryTitleImageType_OnlyImage selectIndex:self.currentIndex unselectIndex:self.currentIndex];
  145 +}
129 #pragma mark - Action 146 #pragma mark - Action
130 // 点击定制频道按钮进入定制 147 // 点击定制频道按钮进入定制
131 - (void)customAction:(UIButton *)sender { 148 - (void)customAction:(UIButton *)sender {
132 - 149 + [[NSNotificationCenter defaultCenter] postNotificationName:WjjH5StopVideoPlayerNotification object:nil];
  150 + [[NSNotificationCenter defaultCenter] postNotificationName:kDSHappinessPageControlScrollEnableNotification object:@(YES)];
  151 + self.hasChanged = NO;
  152 + self.isEditing = YES;
  153 + if (self.currentAtatusColor.intValue == 0) {
  154 + self.oldStatusBar = YES;
  155 + self.currentAtatusColor = @"1";
  156 + [self setNeedsStatusBarAppearanceUpdate];
  157 + } else {
  158 + self.oldStatusBar = NO;
  159 + }
  160 + [self.view addSubview:self.customChannelsV];
  161 + [UIView animateWithDuration:animationTime animations:^{
  162 + self.customChannelsV.alpha = 1.0;
  163 + self.customChannelsV.y = 0;
  164 + }];
133 } 165 }
134 // 登录 166 // 登录
135 - (void)loginAction:(UIButton *)sender { 167 - (void)loginAction:(UIButton *)sender {
@@ -172,13 +204,134 @@ static CGFloat moveHeight = 50; @@ -172,13 +204,134 @@ static CGFloat moveHeight = 50;
172 [self.myCategoryView reloadCellAtIndex:i]; 204 [self.myCategoryView reloadCellAtIndex:i];
173 } 205 }
174 } 206 }
  207 +- (void)dataDivideIntoNormalAndOtherWithFirst:(BOOL)first {
  208 +
  209 + NSArray *channelsArray = [[NSUserDefaults standardUserDefaults] objectForKey:CNLiveNetAddGetCategoryChannels];
  210 + NSString *normalKey = [NSString stringWithFormat:@"%@_%@",NormalChannelArray,CNUserShareModel.uid];
  211 + NSString *otherKey = [NSString stringWithFormat:@"%@_%@",OtherChannelArray,CNUserShareModel.uid];
  212 + NSMutableArray *normalArray = [[NSMutableArray alloc] initWithArray:[[NSUserDefaults standardUserDefaults] objectForKey:normalKey]];
  213 + NSMutableArray *otherArray = [[NSMutableArray alloc] initWithArray:[[NSUserDefaults standardUserDefaults] objectForKey:otherKey]];
  214 +
  215 + // 请求到过数据
  216 + if ([NSArray isArray:channelsArray]) {
  217 +
  218 + NSString *newChannelVer = [[NSUserDefaults standardUserDefaults] objectForKey:CNWjjNewCategoryChannelVerKey];
  219 + NSString *oldChannelVer = [[NSUserDefaults standardUserDefaults] objectForKey:CNWjjOldCategoryChannelVerKey];
  220 + if (CNLiveStringIsEmpty(newChannelVer) || CNLiveStringIsEmpty(oldChannelVer) || [newChannelVer isEqualToString:oldChannelVer]) {// 没有新版本
  221 +
  222 + NSMutableArray *tempAllArray = [[NSMutableArray alloc] initWithArray:channelsArray]; //临时总频道
  223 + NSMutableArray *tempOtherArray = [NSMutableArray array];//临时其他频道
  224 + NSMutableArray *tempNormalArray = [NSMutableArray array];//临时我的频道
  225 + if ([NSArray isArray:otherArray]) {//"其他频道"有数据
  226 + // 比较数据并存储
  227 + for (NSString *str in otherArray) {//遍历其他频道
  228 + NSDictionary *dic = CNLiveStringJsonToDictionary(str);
  229 + CNCategoryGetChannelModel *model = [CNCategoryGetChannelModel mj_objectWithKeyValues:dic];
  230 + NSInteger index = [model containsWithChannelArray:tempAllArray];
  231 + if (index==-1) {
  232 + continue;
  233 + }
  234 + [tempOtherArray addObject:[tempAllArray safetyObjectAtIndex:index]];
  235 + if (index<tempAllArray.count) {
  236 + [tempAllArray removeObjectAtIndex:index];
  237 + }
  238 + }
  239 + [otherArray removeAllObjects];
  240 + otherArray = tempOtherArray; //新"其他频道"
  241 + }
  242 + for (NSString *str in normalArray) { //对"我的频道"按本地顺序排序
  243 + NSDictionary *dic = CNLiveStringJsonToDictionary(str);
  244 + CNCategoryGetChannelModel *model = [CNCategoryGetChannelModel mj_objectWithKeyValues:dic];
  245 + NSInteger index = [model containsWithChannelArray:tempAllArray];
  246 + if (index==-1) {
  247 + continue;
  248 + }
  249 + [tempNormalArray addObject:[tempAllArray safetyObjectAtIndex:index]];
  250 + if (index<tempAllArray.count) {
  251 + [tempAllArray removeObjectAtIndex:index];
  252 + }
  253 + }
  254 + [tempNormalArray addObjectsFromArray:tempAllArray];
  255 + [normalArray removeAllObjects];
  256 + normalArray = tempNormalArray;
  257 +
  258 + } else {
  259 +
  260 + // 有新版本
  261 + normalArray = channelsArray.mutableCopy;
  262 + [otherArray removeAllObjects];
  263 +
  264 + }
  265 + [[NSUserDefaults standardUserDefaults] setObject:newChannelVer forKey:CNWjjOldCategoryChannelVerKey];
  266 +
  267 + } else { // 从未请求到过数据
  268 +
  269 +// if (![CNTools manager].channelsRequested && first) {
  270 +// [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(classifyChannelsRequest:) name:CNWjjClassifyChannelsRequestStateNotifiName object:nil];
  271 +// [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(classifyChannelsRequestedHideLoading:) name:CNWjjClassifyChannelsRequestHideLoadingNotifiName object:nil];
  272 +// [QMUITips showLoadingInView:self.view];
  273 +// self.isLoading = YES;
  274 +// return;
  275 +// }
  276 +
  277 + // 默认数据
  278 + NSMutableArray *defaultArray = [NSMutableArray array];
  279 + NSString *jsonName = [CNLiveEnvironmentManager manager].isTestEnvironment?@"wjjCategoryH5Test":@"wjjCategoryH5";
  280 + NSString *path = [[NSBundle mainBundle] pathForResource:jsonName ofType:@"json"];
  281 + NSData *data = [[NSData alloc] initWithContentsOfFile:path];
  282 + NSArray *dataArray = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:nil];
  283 + for (NSDictionary *dic in dataArray) {
  284 + [defaultArray addObject:CNLiveNSDictionaryDicToJson(dic)];
  285 + }
  286 + NSMutableArray *tempAllArray = [[NSMutableArray alloc] initWithArray:defaultArray];
  287 + NSMutableArray *tempOtherArray = [NSMutableArray array];
  288 + NSMutableArray *tempNormalArray = [NSMutableArray array];//临时我的频道
  289 + if ([NSArray isArray:otherArray]) {//其他频道有数据
  290 + // 比较数据并存储
  291 + for (NSString *str in otherArray) {
  292 + NSDictionary *dic = CNLiveStringJsonToDictionary(str);
  293 + CNCategoryGetChannelModel *model = [CNCategoryGetChannelModel mj_objectWithKeyValues:dic];
  294 + NSInteger index = [model containsWithChannelArray:tempAllArray];
  295 + if (index==-1) {
  296 + continue;
  297 + }
  298 + [tempOtherArray addObject:[tempAllArray safetyObjectAtIndex:index]];
  299 + if (index<tempAllArray.count) {
  300 + [tempAllArray removeObjectAtIndex:index];
  301 + }
  302 + }
  303 + [otherArray removeAllObjects];
  304 + otherArray = tempOtherArray;
  305 +
  306 + }
  307 + for (NSString *str in normalArray) { //对"我的频道"按本地顺序排序
  308 + NSDictionary *dic = CNLiveStringJsonToDictionary(str);
  309 + CNCategoryGetChannelModel *model = [CNCategoryGetChannelModel mj_objectWithKeyValues:dic];
  310 + NSInteger index = [model containsWithChannelArray:tempAllArray];
  311 + if (index==-1) {
  312 + continue;
  313 + }
  314 + [tempNormalArray addObject:[tempAllArray safetyObjectAtIndex:index]];
  315 + if (index<tempAllArray.count) {
  316 + [tempAllArray removeObjectAtIndex:index];
  317 + }
  318 + }
  319 + [tempNormalArray addObjectsFromArray:tempAllArray];
  320 + [normalArray removeAllObjects];
  321 + normalArray = tempNormalArray;
  322 + [[NSUserDefaults standardUserDefaults] setObject:@"default" forKey:CNWjjOldCategoryChannelVerKey];
  323 + }
  324 +
  325 + [[NSUserDefaults standardUserDefaults] setObject:normalArray forKey:normalKey];
  326 + [[NSUserDefaults standardUserDefaults] setObject:otherArray forKey:otherKey];
  327 + [[NSUserDefaults standardUserDefaults] synchronize];
  328 +}
175 329
176 //解析数据 330 //解析数据
177 -(void)handleDateWithChannelsArray 331 -(void)handleDateWithChannelsArray
178 { 332 {
179 - NSString *normalStr = [[NSUserDefaults standardUserDefaults] objectForKey:CNLiveNetAddGetCategoryChannels];  
180 - NSDictionary *dic =CNLiveStringJsonToDictionary(normalStr);  
181 - NSArray *normalArray = dic[@"data"]; 333 + NSString *normalKey = [NSString stringWithFormat:@"%@_%@",NormalChannelArray,CNUserShareModel.uid];
  334 + NSArray *normalArray = [[NSUserDefaults standardUserDefaults] objectForKey:normalKey];
182 [self.dataArray removeAllObjects]; 335 [self.dataArray removeAllObjects];
183 [self.titles removeAllObjects]; 336 [self.titles removeAllObjects];
184 [self.imageNames removeAllObjects]; 337 [self.imageNames removeAllObjects];
@@ -187,7 +340,8 @@ static CGFloat moveHeight = 50; @@ -187,7 +340,8 @@ static CGFloat moveHeight = 50;
187 [self.textColors removeAllObjects]; 340 [self.textColors removeAllObjects];
188 [self.textColorSeleteds removeAllObjects]; 341 [self.textColorSeleteds removeAllObjects];
189 [self.statusBarColors removeAllObjects]; 342 [self.statusBarColors removeAllObjects];
190 - for (NSDictionary *dic in normalArray) { 343 + for (NSString *str in normalArray) {
  344 + NSDictionary *dic = CNLiveStringJsonToDictionary(str);
191 CNCategoryGetChannelModel *model = [CNCategoryGetChannelModel mj_objectWithKeyValues:dic]; 345 CNCategoryGetChannelModel *model = [CNCategoryGetChannelModel mj_objectWithKeyValues:dic];
192 [self.dataArray addObject:model]; 346 [self.dataArray addObject:model];
193 [self.titles addObject:model.showName]; 347 [self.titles addObject:model.showName];
@@ -241,10 +395,10 @@ static CGFloat moveHeight = 50; @@ -241,10 +395,10 @@ static CGFloat moveHeight = 50;
241 [self scrollViewDown]; 395 [self scrollViewDown];
242 } 396 }
243 if ([CNUserShareManager isLogin]) { 397 if ([CNUserShareManager isLogin]) {
244 - self.customChannelsBtn.centerY = self.myCategoryView.collectionView.centerY; 398 + self.customChannelsBtn.centerY = self.myCategoryView.collectionView.centerY + kStatusHeight;
245 }else 399 }else
246 { 400 {
247 - self.loginBtn.centerY = self.myCategoryView.collectionView.centerY; 401 + self.loginBtn.centerY = self.myCategoryView.collectionView.centerY+kStatusHeight;
248 } 402 }
249 }]; 403 }];
250 } 404 }
@@ -273,7 +427,7 @@ static CGFloat moveHeight = 50; @@ -273,7 +427,7 @@ static CGFloat moveHeight = 50;
273 { 427 {
274 for (UIView *view in self.listContainerView.scrollView.subviews) { 428 for (UIView *view in self.listContainerView.scrollView.subviews) {
275 if ([view.viewController isKindOfClass:[CNLiveSubSegmentController class]]) { 429 if ([view.viewController isKindOfClass:[CNLiveSubSegmentController class]]) {
276 - CNLiveSubSegmentController *subVc = view.viewController; 430 + CNLiveSubSegmentController *subVc = (CNLiveSubSegmentController *)view.viewController;
277 [subVc layoutRightSubViewWithShow:!enabled]; 431 [subVc layoutRightSubViewWithShow:!enabled];
278 for (UIView *subView in view.subviews) { 432 for (UIView *subView in view.subviews) {
279 if ([subView isKindOfClass:[JXCategoryListContainerView class]]) { 433 if ([subView isKindOfClass:[JXCategoryListContainerView class]]) {
@@ -286,6 +440,51 @@ static CGFloat moveHeight = 50; @@ -286,6 +440,51 @@ static CGFloat moveHeight = 50;
286 } 440 }
287 } 441 }
288 } 442 }
  443 +#pragma mark - CNCustomChannelListViewDelegate !!!!!!!!!!!!!!!!!!!!!!
  444 +- (void)changeChannelsList
  445 +{
  446 + // "完成"分类频道顺序重排
  447 + [self handleDateWithChannelsArray];
  448 + [self uploadSubViews];
  449 + [self.myCategoryView reloadData];
  450 + self.hasChanged = YES;
  451 +}
  452 +
  453 +- (void)didSelectedCommonChannelWithIndex:(NSInteger)index
  454 +{
  455 + [self quitCustomChannels];
  456 + [self.myCategoryView selectItemAtIndex:index];
  457 +}
  458 +
  459 +- (void)pushToControllerWithIndex:(NSInteger)index
  460 +{
  461 + // 跳到其他频道的对应页面
  462 +// [self goToOtherChannelViewControllerWithIndex:index];
  463 +}
  464 +
  465 +- (void)closeCustomChannelsView {
  466 + // 关闭定制频道页
  467 + [self quitCustomChannels];
  468 +}
  469 +// 退出定制频道编辑页面
  470 +- (void)quitCustomChannels {
  471 +
  472 + self.isEditing = NO;
  473 + if (self.oldStatusBar && !self.hasChanged) {
  474 + self.oldStatusBar = NO;
  475 + self.currentAtatusColor = @"0";
  476 + [self setNeedsStatusBarAppearanceUpdate];
  477 + }
  478 + self.hasChanged = NO;
  479 + [UIView animateWithDuration:animationTime animations:^{
  480 + self.customChannelsV.alpha = 0.0;
  481 + self.customChannelsV.y = animationHeight;
  482 + } completion:^(BOOL finished) {
  483 + [self.customChannelsV removeFromSuperview];
  484 + self.customChannelsV = nil;
  485 + }];
  486 +}
  487 +
289 #pragma mark - JXCategoryViewDelegate 488 #pragma mark - JXCategoryViewDelegate
290 // 正在滚动中的回调,这里调整背景图片的 alpha 透明度 489 // 正在滚动中的回调,这里调整背景图片的 alpha 透明度
291 - (void)categoryView:(JXCategoryBaseView *)categoryView scrollingFromLeftIndex:(NSInteger)leftIndex toRightIndex:(NSInteger)rightIndex ratio:(CGFloat)ratio { 490 - (void)categoryView:(JXCategoryBaseView *)categoryView scrollingFromLeftIndex:(NSInteger)leftIndex toRightIndex:(NSInteger)rightIndex ratio:(CGFloat)ratio {
@@ -314,14 +513,14 @@ static CGFloat moveHeight = 50; @@ -314,14 +513,14 @@ static CGFloat moveHeight = 50;
314 if (model.pageStyleList.count>0) { 513 if (model.pageStyleList.count>0) {
315 self.topBgImg.frame = CGRectMake(0, 0, KScreenWidth, self.topBgImgHeight); 514 self.topBgImg.frame = CGRectMake(0, 0, KScreenWidth, self.topBgImgHeight);
316 CNLiveSubSegmentController *subVC = [[CNLiveSubSegmentController alloc] initWithModel:model]; 515 CNLiveSubSegmentController *subVC = [[CNLiveSubSegmentController alloc] initWithModel:model];
317 - subVC.isBlack = isBlack;  
318 - weakself  
319 - subVC.scrollViewDidScrollBlock = ^(UIScrollView * _Nonnull scrollView) {  
320 - [weakSelf listScrollViewDidScroll:scrollView];  
321 - };  
322 - subVC.willBeginDragging = ^(CGFloat lastOffsetY) {  
323 - weakSelf.lastOffsetY = lastOffsetY;  
324 - }; 516 +// subVC.isBlack = isBlack;
  517 +// weakself
  518 +// subVC.scrollViewDidScrollBlock = ^(UIScrollView * _Nonnull scrollView) {
  519 +// [weakSelf listScrollViewDidScroll:scrollView];
  520 +// };
  521 +// subVC.willBeginDragging = ^(CGFloat lastOffsetY) {
  522 +// weakSelf.lastOffsetY = lastOffsetY;
  523 +// };
325 return subVC; 524 return subVC;
326 } 525 }
327 self.topBgImg.frame = CGRectMake(0, 0, KScreenWidth, self.topBgImgHeight - 50); 526 self.topBgImg.frame = CGRectMake(0, 0, KScreenWidth, self.topBgImgHeight - 50);
@@ -360,14 +559,22 @@ static CGFloat moveHeight = 50; @@ -360,14 +559,22 @@ static CGFloat moveHeight = 50;
360 - (UIButton *)customChannelsBtn { 559 - (UIButton *)customChannelsBtn {
361 if (!_customChannelsBtn) { 560 if (!_customChannelsBtn) {
362 _customChannelsBtn = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, 19, 19)]; 561 _customChannelsBtn = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, 19, 19)];
363 - [_customChannelsBtn setImage:[UIImage imageNamed:@"ik_subtitle_more-black"] forState:UIControlStateNormal];  
364 - [self.customChannelsBtn setImage:[UIImage imageNamed:@"ik_subtitle_more-white"] forState:UIControlStateSelected]; 562 + [_customChannelsBtn setImage:[UIImage loadBundleImage:@"ik_subtitle_more_black"] forState:UIControlStateNormal];
  563 + [_customChannelsBtn setImage:[UIImage loadBundleImage:@"ik_subtitle_more_white"] forState:UIControlStateSelected];
365 [_customChannelsBtn addTarget:self action:@selector(customAction:) forControlEvents:UIControlEventTouchUpInside]; 564 [_customChannelsBtn addTarget:self action:@selector(customAction:) forControlEvents:UIControlEventTouchUpInside];
366 _customChannelsBtn.touchAreaInsets = UIEdgeInsetsMake(20, 20, 20, 20); 565 _customChannelsBtn.touchAreaInsets = UIEdgeInsetsMake(20, 20, 20, 20);
367 } 566 }
368 return _customChannelsBtn; 567 return _customChannelsBtn;
369 } 568 }
370 - 569 +- (CNCustomChannelListView *)customChannelsV {
  570 + if (!_customChannelsV) {
  571 + _customChannelsV = [[CNCustomChannelListView alloc] initWithFrame:CGRectMake(0, animationHeight, KScreenWidth, KScreenHeight)];
  572 + _customChannelsV.backgroundColor = kWhiteColor;
  573 + _customChannelsV.alpha = 0;
  574 + _customChannelsV.delegate = self;
  575 + }
  576 + return _customChannelsV;
  577 +}
371 578
372 - (UIButton *)loginBtn { 579 - (UIButton *)loginBtn {
373 if (!_loginBtn) { 580 if (!_loginBtn) {
CNLiveVideoClassifyKit/Classes/Controller/CNLiveSubSegmentController.m
@@ -22,7 +22,10 @@ @@ -22,7 +22,10 @@
22 @end 22 @end
23 23
24 @implementation CNLiveSubSegmentController 24 @implementation CNLiveSubSegmentController
25 - 25 +-(void)dealloc
  26 +{
  27 +
  28 +}
26 -(instancetype)initWithModel:(CNCategoryGetChannelModel *)model 29 -(instancetype)initWithModel:(CNCategoryGetChannelModel *)model
27 { 30 {
28 self = [super init]; 31 self = [super init];
@@ -52,6 +55,7 @@ @@ -52,6 +55,7 @@
52 // 添加二级频道右侧的搜索按钮 55 // 添加二级频道右侧的搜索按钮
53 [self.view addSubview:self.searchBtn]; 56 [self.view addSubview:self.searchBtn];
54 self.view.backgroundColor = [UIColor clearColor]; 57 self.view.backgroundColor = [UIColor clearColor];
  58 + [self handleDateWithChannelsArray];
55 self.myCategoryView.titles = self.titles; 59 self.myCategoryView.titles = self.titles;
56 if (CNLiveStringIsEmpty(self.backImage)) { 60 if (CNLiveStringIsEmpty(self.backImage)) {
57 self.view.backgroundColor = self.backgroundColor; 61 self.view.backgroundColor = self.backgroundColor;
@@ -73,7 +77,6 @@ @@ -73,7 +77,6 @@
73 -(void)viewDidLayoutSubviews 77 -(void)viewDidLayoutSubviews
74 { 78 {
75 [super viewDidLayoutSubviews]; 79 [super viewDidLayoutSubviews];
76 - self.searchBtn.frame = CGRectMake(0, 0, 66, 30);  
77 self.searchBtn.right = KScreenWidth-12; 80 self.searchBtn.right = KScreenWidth-12;
78 self.searchBtn.centerY = self.myCategoryView.height/2; 81 self.searchBtn.centerY = self.myCategoryView.height/2;
79 self.myCategoryView.top = 0; 82 self.myCategoryView.top = 0;
@@ -94,7 +97,6 @@ @@ -94,7 +97,6 @@
94 97
95 if (show) { 98 if (show) {
96 // 正常 99 // 正常
97 - [UIView animateWithDuration:0.3 animations:^{  
98 100
99 self.searchBtn.width = 66; 101 self.searchBtn.width = 66;
100 self.searchBtn.right = KScreenWidth-12; 102 self.searchBtn.right = KScreenWidth-12;
@@ -108,12 +110,8 @@ @@ -108,12 +110,8 @@
108 // } 110 // }
109 111
110 self.myCategoryView.width = self.searchBtn.left; 112 self.myCategoryView.width = self.searchBtn.left;
111 - }];  
112 } else { 113 } else {
113 // 变窄 114 // 变窄
114 - [UIView animateWithDuration:0.3 animations:^{  
115 -  
116 -  
117 115
118 self.searchBtn.width = 30; 116 self.searchBtn.width = 30;
119 self.searchBtn.right = KScreenWidth-12; 117 self.searchBtn.right = KScreenWidth-12;
@@ -126,7 +124,6 @@ @@ -126,7 +124,6 @@
126 // self.historyBtn.right = KScreenWidth-93+30; 124 // self.historyBtn.right = KScreenWidth-93+30;
127 // } 125 // }
128 self.myCategoryView.width = self.searchBtn.left; 126 self.myCategoryView.width = self.searchBtn.left;
129 - }];  
130 } 127 }
131 } 128 }
132 129
@@ -171,6 +168,7 @@ @@ -171,6 +168,7 @@
171 - (QMUIButton *)searchBtn { 168 - (QMUIButton *)searchBtn {
172 if (!_searchBtn) { 169 if (!_searchBtn) {
173 _searchBtn = [QMUIButton buttonWithType:UIButtonTypeCustom]; 170 _searchBtn = [QMUIButton buttonWithType:UIButtonTypeCustom];
  171 + _searchBtn.frame = CGRectMake(0, 0, 66, 30);
174 [_searchBtn setTitle:@"搜索" forState:UIControlStateNormal]; 172 [_searchBtn setTitle:@"搜索" forState:UIControlStateNormal];
175 _searchBtn.titleLabel.font = [UIFont systemFontOfSize:14.0]; 173 _searchBtn.titleLabel.font = [UIFont systemFontOfSize:14.0];
176 if (self.isBlack) { 174 if (self.isBlack) {
CNLiveVideoClassifyKit/Classes/Header/CNLiveCommonDefines.h
@@ -52,9 +52,9 @@ @@ -52,9 +52,9 @@
52 //#endif 52 //#endif
53 // 53 //
54 //// 分类停止播放目击者列表中的视频 54 //// 分类停止播放目击者列表中的视频
55 -//#ifndef WjjH5StopVideoPlayerNotification  
56 -//#define WjjH5StopVideoPlayerNotification @"WjjH5StopVideoPlayerNotification"  
57 -//#endif 55 +#ifndef WjjH5StopVideoPlayerNotification
  56 +#define WjjH5StopVideoPlayerNotification @"WjjH5StopVideoPlayerNotification"
  57 +#endif
58 // 58 //
59 //#define kCNLiveGeneralMargin 10*RATIO //通用间距 59 //#define kCNLiveGeneralMargin 10*RATIO //通用间距
60 //#define kCNLiveNotGeneralMargin 10 //通用间距 60 //#define kCNLiveNotGeneralMargin 10 //通用间距
@@ -67,11 +67,24 @@ @@ -67,11 +67,24 @@
67 // 67 //
68 //static NSString *const CNLiveFirendCircleEmptyItemDesc = @"当前版本过低,暂不支持查看此动态,请升级网家家最新版本查看消息。"; 68 //static NSString *const CNLiveFirendCircleEmptyItemDesc = @"当前版本过低,暂不支持查看此动态,请升级网家家最新版本查看消息。";
69 // 69 //
70 -//#pragma mark - 电商中国首页  
71 -////NSString * const kDSHappinessPageControlScrollEnableNotification = @"kDSHappinessPageControlScrollEnableNotification";  
72 -//  
73 -//  
74 -// 70 +
  71 +#ifndef CNWjjClassifyChannelsRequestHideLoadingNotifiName
  72 +#define CNWjjClassifyChannelsRequestHideLoadingNotifiName @"CNWjjClassifyChannelsRequestHideLoadingNotifiName"
  73 +#endif
  74 +//分类-频道-新版本
  75 +#ifndef CNWjjNewCategoryChannelVerKey
  76 +#define CNWjjNewCategoryChannelVerKey @"CNWjjNewCategoryChannelVerKey"
  77 +#endif
  78 +//分类-频道-旧版本
  79 +#ifndef CNWjjOldCategoryChannelVerKey
  80 +#define CNWjjOldCategoryChannelVerKey @"CNWjjOldCategoryChannelVerKey"
  81 +#endif
  82 +#pragma mark - 电商中国首页
  83 +#ifndef kDSHappinessPageControlScrollEnableNotification
  84 +#define kDSHappinessPageControlScrollEnableNotification @"kDSHappinessPageControlScrollEnableNotification"
  85 +#endif
  86 +
  87 +
75 //#define cn_WjjH5_Host(url) [NSString stringWithFormat:@"%@%@",[CNLiveEnvironmentManager manager].kWjjH5_Host,url] 88 //#define cn_WjjH5_Host(url) [NSString stringWithFormat:@"%@%@",[CNLiveEnvironmentManager manager].kWjjH5_Host,url]
76 // 89 //
77 //#define RGBACOLOR(r,g,b,a) \ 90 //#define RGBACOLOR(r,g,b,a) \
CNLiveVideoClassifyKit/Classes/Header/CNLivevideoClassifyPCH.h
@@ -21,6 +21,7 @@ @@ -21,6 +21,7 @@
21 #import "CNLiveCommonDefines.h" 21 #import "CNLiveCommonDefines.h"
22 #import <QMUIKit/QMUIKit.h> 22 #import <QMUIKit/QMUIKit.h>
23 #import "UIImage+AdBundleImage.h" 23 #import "UIImage+AdBundleImage.h"
  24 +#import "CNLiveClassifySegmentController.h"
24 25
25 26
26 #endif /* CNLivevideoClassifyPCH_h */ 27 #endif /* CNLivevideoClassifyPCH_h */
CNLiveVideoClassifyKit/Classes/view/CNCustomChannelListCell.m
@@ -25,7 +25,7 @@ static CGFloat const imageViewHeight = 25.0f; @@ -25,7 +25,7 @@ static CGFloat const imageViewHeight = 25.0f;
25 if (self) { 25 if (self) {
26 26
27 self.imageView = [[UIImageView alloc] initWithFrame:CGRectMake((CellWidth-imageViewHeight)*0.5, 15, imageViewHeight, imageViewHeight)]; 27 self.imageView = [[UIImageView alloc] initWithFrame:CGRectMake((CellWidth-imageViewHeight)*0.5, 15, imageViewHeight, imageViewHeight)];
28 - self.imageView.image = [UIImage imageNamed:@"more_zwf"]; 28 + self.imageView.image = [UIImage loadBundleImage:@"more_zwf"];
29 [self addSubview:self.imageView]; 29 [self addSubview:self.imageView];
30 30
31 self.titleLbl = [[UILabel alloc] initWithFrame:CGRectMake(0, 15 + imageViewHeight + 22, CellWidth, 14*RATIO)]; 31 self.titleLbl = [[UILabel alloc] initWithFrame:CGRectMake(0, 15 + imageViewHeight + 22, CellWidth, 14*RATIO)];
@@ -35,7 +35,7 @@ static CGFloat const imageViewHeight = 25.0f; @@ -35,7 +35,7 @@ static CGFloat const imageViewHeight = 25.0f;
35 [self addSubview:self.titleLbl]; 35 [self addSubview:self.titleLbl];
36 36
37 self.addImageView = [[UIImageView alloc] initWithFrame:CGRectMake(CellWidth - 20, 6, 14, 14)]; 37 self.addImageView = [[UIImageView alloc] initWithFrame:CGRectMake(CellWidth - 20, 6, 14, 14)];
38 - self.addImageView.image = [UIImage imageNamed:@"more_add"]; 38 + self.addImageView.image = [UIImage loadBundleImage:@"more_add"];
39 self.addImageView.hidden = YES; 39 self.addImageView.hidden = YES;
40 [self addSubview:self.addImageView]; 40 [self addSubview:self.addImageView];
41 41
@@ -59,10 +59,10 @@ static CGFloat const imageViewHeight = 25.0f; @@ -59,10 +59,10 @@ static CGFloat const imageViewHeight = 25.0f;
59 { 59 {
60 _isNeedAdd = isNeedAdd; 60 _isNeedAdd = isNeedAdd;
61 if (isNeedAdd) { 61 if (isNeedAdd) {
62 - self.addImageView.image = [UIImage imageNamed:@"more_add"]; 62 + self.addImageView.image = [UIImage loadBundleImage:@"more_add"];
63 } 63 }
64 else { 64 else {
65 - self.addImageView.image = [UIImage imageNamed:@"more_reduce"]; 65 + self.addImageView.image = [UIImage loadBundleImage:@"more_reduce"];
66 } 66 }
67 } 67 }
68 68
CNLiveVideoClassifyKit/Classes/view/CNCustomChannelListView.m
@@ -419,7 +419,7 @@ static NSString * const headerIdentifier = @&quot;CustomChannelsHeader&quot;; @@ -419,7 +419,7 @@ static NSString * const headerIdentifier = @&quot;CustomChannelsHeader&quot;;
419 NSString *dataStr = [self.commonChannel safetyObjectAtIndex:indexPath.row]; 419 NSString *dataStr = [self.commonChannel safetyObjectAtIndex:indexPath.row];
420 NSDictionary *dic = CNLiveStringJsonToDictionary(dataStr); 420 NSDictionary *dic = CNLiveStringJsonToDictionary(dataStr);
421 CNCategoryGetChannelModel *model = [CNCategoryGetChannelModel mj_objectWithKeyValues:dic]; 421 CNCategoryGetChannelModel *model = [CNCategoryGetChannelModel mj_objectWithKeyValues:dic];
422 - [cell.imageView sd_setImageWithURL:[NSURL URLWithString:model.icon?model.icon:@""] placeholderImage:[UIImage imageNamed:@"more_zwf"]]; 422 + [cell.imageView sd_setImageWithURL:[NSURL URLWithString:model.icon?model.icon:@""] placeholderImage:[UIImage loadBundleImage:@"more_zwf"]];
423 cell.titleLbl.text = model.showName; 423 cell.titleLbl.text = model.showName;
424 if (indexPath.row == 0) { 424 if (indexPath.row == 0) {
425 cell.isHideAdd = YES; 425 cell.isHideAdd = YES;
@@ -437,7 +437,7 @@ static NSString * const headerIdentifier = @&quot;CustomChannelsHeader&quot;; @@ -437,7 +437,7 @@ static NSString * const headerIdentifier = @&quot;CustomChannelsHeader&quot;;
437 NSString *dataStr = [self.otherChannel safetyObjectAtIndex:indexPath.row]; 437 NSString *dataStr = [self.otherChannel safetyObjectAtIndex:indexPath.row];
438 NSDictionary *dic = CNLiveStringJsonToDictionary(dataStr); 438 NSDictionary *dic = CNLiveStringJsonToDictionary(dataStr);
439 CNCategoryGetChannelModel *model = [CNCategoryGetChannelModel mj_objectWithKeyValues:dic]; 439 CNCategoryGetChannelModel *model = [CNCategoryGetChannelModel mj_objectWithKeyValues:dic];
440 - [cell.imageView sd_setImageWithURL:[NSURL URLWithString:model.icon?model.icon:@""] placeholderImage:[UIImage imageNamed:@"more_zwf"]]; 440 + [cell.imageView sd_setImageWithURL:[NSURL URLWithString:model.icon?model.icon:@""] placeholderImage:[UIImage loadBundleImage:@"more_zwf"]];
441 cell.titleLbl.text = model.showName; 441 cell.titleLbl.text = model.showName;
442 if (self.isEdit) { 442 if (self.isEdit) {
443 cell.isHideAdd = NO; 443 cell.isHideAdd = NO;
@@ -465,7 +465,7 @@ static NSString * const headerIdentifier = @&quot;CustomChannelsHeader&quot;; @@ -465,7 +465,7 @@ static NSString * const headerIdentifier = @&quot;CustomChannelsHeader&quot;;
465 - (UIButton *)closeBtn { 465 - (UIButton *)closeBtn {
466 if (!_closeBtn) { 466 if (!_closeBtn) {
467 _closeBtn = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, 16, 16)]; 467 _closeBtn = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, 16, 16)];
468 - [_closeBtn setImage:[UIImage imageNamed:@"jj_close"] forState:UIControlStateNormal]; 468 + [_closeBtn setImage:[UIImage loadBundleImage:@"jj_close"] forState:UIControlStateNormal];
469 [_closeBtn addTarget:self action:@selector(closeAction:) forControlEvents:UIControlEventTouchUpInside]; 469 [_closeBtn addTarget:self action:@selector(closeAction:) forControlEvents:UIControlEventTouchUpInside];
470 _closeBtn.touchAreaInsets = UIEdgeInsetsMake(20, 20, 20, 20); 470 _closeBtn.touchAreaInsets = UIEdgeInsetsMake(20, 20, 20, 20);
471 } 471 }
Example/CNLiveVideoClassifyKit/CNLIVEViewController.m
@@ -9,7 +9,7 @@ @@ -9,7 +9,7 @@
9 #import "CNLIVEViewController.h" 9 #import "CNLIVEViewController.h"
10 #import <CNLiveBaseKit/CNLiveBaseKit.h> 10 #import <CNLiveBaseKit/CNLiveBaseKit.h>
11 #import "CNliveCollectionViewCell.h" 11 #import "CNliveCollectionViewCell.h"
12 -#import <CNLiveVideoClassifyKit/CNLiveClassifySegmentController.h> 12 +#import <CNLiveVideoClassifyKit/CNLivevideoClassifyPCH.h>
13 #import <CNLiveNetworking.h> 13 #import <CNLiveNetworking.h>
14 #import <NSString+CNLiveExtension.h> 14 #import <NSString+CNLiveExtension.h>
15 #import <CNLiveEnvironment/CNLiveEnvironment.h> 15 #import <CNLiveEnvironment/CNLiveEnvironment.h>
@@ -45,8 +45,12 @@ @@ -45,8 +45,12 @@
45 }; 45 };
46 [CNLiveNetworking requestNetworkWithMethod:CNLiveRequestMethodGET URLString:CNCategoryGetChannelUrl Param:dic CacheType:CNLiveNetworkCacheTypeNetworkOnly CompletionBlock:^(NSURLSessionTask *requestTask, id responseObject, NSError *error) { 46 [CNLiveNetworking requestNetworkWithMethod:CNLiveRequestMethodGET URLString:CNCategoryGetChannelUrl Param:dic CacheType:CNLiveNetworkCacheTypeNetworkOnly CompletionBlock:^(NSURLSessionTask *requestTask, id responseObject, NSError *error) {
47 if ([NSArray isArray:responseObject[@"data"]]) { 47 if ([NSArray isArray:responseObject[@"data"]]) {
48 - NSString *jsonStr = CNLiveNSDictionaryDicToJson(responseObject);  
49 - [[NSUserDefaults standardUserDefaults] setObject:jsonStr forKey:CNLiveNetAddGetCategoryChannels]; 48 + NSMutableArray *jsonArray = [[NSMutableArray alloc] init];
  49 + for (NSDictionary *dic in responseObject[@"data"]) {
  50 + NSString *jsonStr = CNLiveNSDictionaryDicToJson(dic);
  51 + [jsonArray addObject:jsonStr];
  52 + }
  53 + [[NSUserDefaults standardUserDefaults] setObject:jsonArray forKey:CNLiveNetAddGetCategoryChannels];
50 [[NSUserDefaults standardUserDefaults] synchronize]; 54 [[NSUserDefaults standardUserDefaults] synchronize];
51 } 55 }
52 56