Commit 9cd2e47f387ecc881e2835ea1e4718627820803c
Merge branch 'master' of bj.gitlab.cnlive.com:ios-team/ScioLive
Showing
65 changed files
with
702 additions
and
993 deletions
CNLiveScioLive.xcodeproj/project.pbxproj
| ... | ... | @@ -13,7 +13,6 @@ |
| 13 | 13 | 080AB4C8217AD4F4008BA78F /* TemplateShareManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 080AB4C5217AD4F4008BA78F /* TemplateShareManager.m */; }; |
| 14 | 14 | 0816B5E42648C23A005E1F8C /* UIColor+CNGray.m in Sources */ = {isa = PBXBuildFile; fileRef = 0816B5E32648C23A005E1F8C /* UIColor+CNGray.m */; }; |
| 15 | 15 | 0816B5E92648C320005E1F8C /* WKWebView+CNGray.m in Sources */ = {isa = PBXBuildFile; fileRef = 0816B5E82648C320005E1F8C /* WKWebView+CNGray.m */; }; |
| 16 | - 0836125A264BA2BF00A18E52 /* UILabel+CNGray.m in Sources */ = {isa = PBXBuildFile; fileRef = 08361259264BA2BF00A18E52 /* UILabel+CNGray.m */; }; | |
| 17 | 16 | 083847E1215C5DDD00186618 /* VPImageCropperViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 083847E0215C5DDD00186618 /* VPImageCropperViewController.m */; }; |
| 18 | 17 | 083847E2215C5DDD00186618 /* VPImageCropperViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 083847E0215C5DDD00186618 /* VPImageCropperViewController.m */; }; |
| 19 | 18 | 083847E3215C5DDD00186618 /* VPImageCropperViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 083847E0215C5DDD00186618 /* VPImageCropperViewController.m */; }; |
| ... | ... | @@ -91,9 +90,6 @@ |
| 91 | 90 | 084ACE3B2154C8310089E035 /* CNLiveNewsUpPicTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 084ACE3A2154C8310089E035 /* CNLiveNewsUpPicTableViewCell.m */; }; |
| 92 | 91 | 084ACE3C2154C8310089E035 /* CNLiveNewsUpPicTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 084ACE3A2154C8310089E035 /* CNLiveNewsUpPicTableViewCell.m */; }; |
| 93 | 92 | 084ACE3D2154C8310089E035 /* CNLiveNewsUpPicTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 084ACE3A2154C8310089E035 /* CNLiveNewsUpPicTableViewCell.m */; }; |
| 94 | - 084ACE402154D7F70089E035 /* CNHomeBaseViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 084ACE3F2154D7F70089E035 /* CNHomeBaseViewController.m */; }; | |
| 95 | - 084ACE412154D7F70089E035 /* CNHomeBaseViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 084ACE3F2154D7F70089E035 /* CNHomeBaseViewController.m */; }; | |
| 96 | - 084ACE422154D7F70089E035 /* CNHomeBaseViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 084ACE3F2154D7F70089E035 /* CNHomeBaseViewController.m */; }; | |
| 97 | 93 | 08515D07215B81E900411756 /* TopNoticeViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 08515D06215B81E900411756 /* TopNoticeViewController.m */; }; |
| 98 | 94 | 08515D08215B81E900411756 /* TopNoticeViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 08515D06215B81E900411756 /* TopNoticeViewController.m */; }; |
| 99 | 95 | 08515D09215B81E900411756 /* TopNoticeViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 08515D06215B81E900411756 /* TopNoticeViewController.m */; }; |
| ... | ... | @@ -741,8 +737,6 @@ |
| 741 | 737 | 0816B5E32648C23A005E1F8C /* UIColor+CNGray.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "UIColor+CNGray.m"; sourceTree = "<group>"; }; |
| 742 | 738 | 0816B5E72648C320005E1F8C /* WKWebView+CNGray.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "WKWebView+CNGray.h"; sourceTree = "<group>"; }; |
| 743 | 739 | 0816B5E82648C320005E1F8C /* WKWebView+CNGray.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "WKWebView+CNGray.m"; sourceTree = "<group>"; }; |
| 744 | - 08361258264BA2BF00A18E52 /* UILabel+CNGray.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "UILabel+CNGray.h"; sourceTree = "<group>"; }; | |
| 745 | - 08361259264BA2BF00A18E52 /* UILabel+CNGray.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "UILabel+CNGray.m"; sourceTree = "<group>"; }; | |
| 746 | 740 | 083847DF215C5DDD00186618 /* VPImageCropperViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = VPImageCropperViewController.h; sourceTree = "<group>"; }; |
| 747 | 741 | 083847E0215C5DDD00186618 /* VPImageCropperViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = VPImageCropperViewController.m; sourceTree = "<group>"; }; |
| 748 | 742 | 0838483C215C838B00186618 /* CNLiveENTabBarController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CNLiveENTabBarController.h; sourceTree = "<group>"; }; |
| ... | ... | @@ -795,8 +789,6 @@ |
| 795 | 789 | 084ACE352154C6D60089E035 /* CNLiveNewsLeftPicTableViewCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = CNLiveNewsLeftPicTableViewCell.m; sourceTree = "<group>"; }; |
| 796 | 790 | 084ACE392154C8310089E035 /* CNLiveNewsUpPicTableViewCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CNLiveNewsUpPicTableViewCell.h; sourceTree = "<group>"; }; |
| 797 | 791 | 084ACE3A2154C8310089E035 /* CNLiveNewsUpPicTableViewCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = CNLiveNewsUpPicTableViewCell.m; sourceTree = "<group>"; }; |
| 798 | - 084ACE3E2154D7F70089E035 /* CNHomeBaseViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CNHomeBaseViewController.h; sourceTree = "<group>"; }; | |
| 799 | - 084ACE3F2154D7F70089E035 /* CNHomeBaseViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = CNHomeBaseViewController.m; sourceTree = "<group>"; }; | |
| 800 | 792 | 08515D05215B81E900411756 /* TopNoticeViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TopNoticeViewController.h; sourceTree = "<group>"; }; |
| 801 | 793 | 08515D06215B81E900411756 /* TopNoticeViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TopNoticeViewController.m; sourceTree = "<group>"; }; |
| 802 | 794 | 08585CE3215B302C00FC2CA2 /* CNLiveSearchViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CNLiveSearchViewController.h; sourceTree = "<group>"; }; |
| ... | ... | @@ -1816,8 +1808,6 @@ |
| 1816 | 1808 | children = ( |
| 1817 | 1809 | 08C09000214FB0E600E23D16 /* CNHomeViewController.h */, |
| 1818 | 1810 | 08C09001214FB0E600E23D16 /* CNHomeViewController.m */, |
| 1819 | - 084ACE3E2154D7F70089E035 /* CNHomeBaseViewController.h */, | |
| 1820 | - 084ACE3F2154D7F70089E035 /* CNHomeBaseViewController.m */, | |
| 1821 | 1811 | 08384845215C98A000186618 /* CNHomeENViewController.h */, |
| 1822 | 1812 | 08384846215C98A000186618 /* CNHomeENViewController.m */, |
| 1823 | 1813 | 084ACE202154B1270089E035 /* CNHomeModel.h */, |
| ... | ... | @@ -2255,8 +2245,6 @@ |
| 2255 | 2245 | 0816B5E32648C23A005E1F8C /* UIColor+CNGray.m */, |
| 2256 | 2246 | 0816B5E72648C320005E1F8C /* WKWebView+CNGray.h */, |
| 2257 | 2247 | 0816B5E82648C320005E1F8C /* WKWebView+CNGray.m */, |
| 2258 | - 08361258264BA2BF00A18E52 /* UILabel+CNGray.h */, | |
| 2259 | - 08361259264BA2BF00A18E52 /* UILabel+CNGray.m */, | |
| 2260 | 2248 | ); |
| 2261 | 2249 | path = ImageGray; |
| 2262 | 2250 | sourceTree = "<group>"; |
| ... | ... | @@ -2845,7 +2833,6 @@ |
| 2845 | 2833 | isa = PBXSourcesBuildPhase; |
| 2846 | 2834 | buildActionMask = 2147483647; |
| 2847 | 2835 | files = ( |
| 2848 | - 0836125A264BA2BF00A18E52 /* UILabel+CNGray.m in Sources */, | |
| 2849 | 2836 | 08B5C5822153400700F5476E /* CNNewsoundBaseModel.m in Sources */, |
| 2850 | 2837 | 08585DB5215B4DA300FC2CA2 /* CNLiveAdvancedSearchViewController.m in Sources */, |
| 2851 | 2838 | 08C28A30263932960065B372 /* UIImageView+CNGrayImage.m in Sources */, |
| ... | ... | @@ -2872,7 +2859,6 @@ |
| 2872 | 2859 | 08585D86215B4C7200FC2CA2 /* PGDatePicker+Common.m in Sources */, |
| 2873 | 2860 | 08C090732150C79C00E23D16 /* UIView+ViewController.m in Sources */, |
| 2874 | 2861 | 085D86D1215A3BFD0037D480 /* CNLiveUserUpdateViewController.m in Sources */, |
| 2875 | - 084ACE402154D7F70089E035 /* CNHomeBaseViewController.m in Sources */, | |
| 2876 | 2862 | 08C08FE3214FA01B00E23D16 /* CNLiveViewController.m in Sources */, |
| 2877 | 2863 | 0838483E215C838B00186618 /* CNLiveENTabBarController.m in Sources */, |
| 2878 | 2864 | 085D86C7215A20A50037D480 /* CNLiveUserSettingViewController.m in Sources */, |
| ... | ... | @@ -3149,7 +3135,6 @@ |
| 3149 | 3135 | 08B5C5AD21535D4400F5476E /* NSString+Validation.m in Sources */, |
| 3150 | 3136 | 08384853215CA74700186618 /* SCIOSpecialViewController.m in Sources */, |
| 3151 | 3137 | 08384869215CAB1C00186618 /* YWWebScrollView.m in Sources */, |
| 3152 | - 084ACE412154D7F70089E035 /* CNHomeBaseViewController.m in Sources */, | |
| 3153 | 3138 | 084ACE19215481870089E035 /* NoDataView.m in Sources */, |
| 3154 | 3139 | 0870DACF215F1CE6008DC811 /* VideoPlayBackViewController.m in Sources */, |
| 3155 | 3140 | 08B5C5A221534DC700F5476E /* CNLiveRegisterEmailViewController.m in Sources */, |
| ... | ... | @@ -3304,7 +3289,6 @@ |
| 3304 | 3289 | 08B5C5AE21535D4400F5476E /* NSString+Validation.m in Sources */, |
| 3305 | 3290 | 08384854215CA74700186618 /* SCIOSpecialViewController.m in Sources */, |
| 3306 | 3291 | 0838486A215CAB1C00186618 /* YWWebScrollView.m in Sources */, |
| 3307 | - 084ACE422154D7F70089E035 /* CNHomeBaseViewController.m in Sources */, | |
| 3308 | 3292 | 084ACE1A215481870089E035 /* NoDataView.m in Sources */, |
| 3309 | 3293 | 0870DAD0215F1CE6008DC811 /* VideoPlayBackViewController.m in Sources */, |
| 3310 | 3294 | 08B5C5A321534DC700F5476E /* CNLiveRegisterEmailViewController.m in Sources */, | ... | ... |
CNLiveScioLive/AppDelegate.m
| ... | ... | @@ -17,6 +17,8 @@ |
| 17 | 17 | @interface AppDelegate ()<XGPushDelegate> |
| 18 | 18 | { |
| 19 | 19 | UIImageView *imageView; |
| 20 | + NSTimer *connectionTimer; | |
| 21 | + BOOL done; | |
| 20 | 22 | } |
| 21 | 23 | @property (nonatomic, assign) BOOL isPush; //区分普通启动还是推送 |
| 22 | 24 | @property (nonatomic, copy) NSString *type; //区分首页还是直播 还是id |
| ... | ... | @@ -58,17 +60,11 @@ |
| 58 | 60 | [self checkAppUpdate]; |
| 59 | 61 | |
| 60 | 62 | [self initializeSDKConfiguration]; |
| 61 | - [self requestLanchImage]; | |
| 62 | - NSData *data = [[NSUserDefaults standardUserDefaults] objectForKey:@"lanchImage"]; | |
| 63 | - if (data.length>0) { | |
| 64 | - UIViewController *VC = [[UIViewController alloc] init]; | |
| 65 | - imageView= [[UIImageView alloc ] initWithFrame :[ UIScreen mainScreen ]. bounds ]; | |
| 66 | - [imageView setImage:[UIImage imageWithData:data]]; | |
| 67 | - [VC.view addSubview:imageView]; | |
| 68 | - self.window.rootViewController = VC; | |
| 69 | - [self performSelector:@selector(removeImage) withObject:nil afterDelay:3]; | |
| 70 | - [self.window makeKeyAndVisible]; | |
| 71 | - } | |
| 63 | + [self requestLanchImage:0]; | |
| 64 | + do{ | |
| 65 | + [[NSRunLoop currentRunLoop] runUntilDate:[NSDate dateWithTimeIntervalSinceNow:1.0]]; | |
| 66 | + | |
| 67 | + }while (!done); | |
| 72 | 68 | return YES; |
| 73 | 69 | } |
| 74 | 70 | -(void)addRootViewController |
| ... | ... | @@ -92,10 +88,11 @@ |
| 92 | 88 | CNLiveENTabBarController *liveTab = [[CNLiveENTabBarController alloc] init]; |
| 93 | 89 | self.window.rootViewController = liveTab; |
| 94 | 90 | } |
| 91 | + done = YES; | |
| 95 | 92 | [self.window makeKeyAndVisible]; |
| 96 | 93 | } |
| 97 | 94 | #pragma mark - 请求启动页 |
| 98 | --(void)requestLanchImage | |
| 95 | +-(void)requestLanchImage:(int)time | |
| 99 | 96 | { |
| 100 | 97 | NSString *urlStr = REQUESTURL(@"gxb/openBanner"); |
| 101 | 98 | NSDictionary *parameters = @{@"params":@"{\"plat\":\"i\",\"version\":\"5.0\",\"appid\":\"gxb\",\"pageUUID\":\"852cde69-ecd8-11e6-b52e-c7d8a7a18cc4\",\"pageType\":\"channelList\"}"}; |
| ... | ... | @@ -103,7 +100,7 @@ |
| 103 | 100 | NSDictionary *dic = [NSDictionary dictionaryWithDictionary:json]; |
| 104 | 101 | NSURL *url = [NSURL URLWithString:dic[@"data"][@"image"]]; |
| 105 | 102 | NSString * mode = dic[@"grayMode"]; |
| 106 | - if (mode.intValue == 1) { | |
| 103 | + if (mode&&mode.intValue == 1) { | |
| 107 | 104 | [[NSUserDefaults standardUserDefaults] setBool:YES forKey:ISGRAYMODE]; |
| 108 | 105 | }else{ |
| 109 | 106 | [[NSUserDefaults standardUserDefaults] setBool:NO forKey:ISGRAYMODE]; |
| ... | ... | @@ -115,9 +112,17 @@ |
| 115 | 112 | [[NSUserDefaults standardUserDefaults] setValue:nil forKey:HOMETITLECOLOR]; |
| 116 | 113 | } |
| 117 | 114 | NSData *data = [[NSUserDefaults standardUserDefaults] objectForKey:@"lanchImage"]; |
| 118 | - if (data.length<=0) { | |
| 115 | + NSString *errorCode = dic[@"errorCode"]; | |
| 119 | 116 | [self addRootViewController]; |
| 120 | - } | |
| 117 | + if (errorCode.intValue == 0) { | |
| 118 | + if (data.length>0) { | |
| 119 | + self->imageView= [[UIImageView alloc ] initWithFrame :[ UIScreen mainScreen ]. bounds ]; | |
| 120 | + [self->imageView setImage:[UIImage imageWithData:data]]; | |
| 121 | + [AppKeyWindow addSubview:self->imageView]; | |
| 122 | + self->imageView.contentMode= UIViewContentModeScaleAspectFill; | |
| 123 | + [self performSelector:@selector(removeImage) withObject:nil afterDelay:3]; | |
| 124 | + self->done = YES; | |
| 125 | + } | |
| 121 | 126 | NSURLSessionConfiguration *configuration = [ NSURLSessionConfiguration defaultSessionConfiguration ]; |
| 122 | 127 | AFURLSessionManager *manager = [[ AFURLSessionManager alloc ] initWithSessionConfiguration :configuration]; |
| 123 | 128 | NSURLRequest *request = [ NSURLRequest requestWithURL :url]; |
| ... | ... | @@ -133,15 +138,16 @@ |
| 133 | 138 | |
| 134 | 139 | }]; |
| 135 | 140 | [downloadTask resume ]; |
| 136 | - | |
| 141 | + } | |
| 137 | 142 | } failure:^(NSError *error) { |
| 138 | - [self requestLanchImage]; | |
| 143 | + [self addRootViewController]; | |
| 144 | + | |
| 139 | 145 | }]; |
| 146 | + | |
| 140 | 147 | } |
| 141 | 148 | -(void)removeImage{ |
| 142 | 149 | [imageView removeFromSuperview]; |
| 143 | 150 | imageView = nil; |
| 144 | - [self addRootViewController]; | |
| 145 | 151 | } |
| 146 | 152 | //语言 |
| 147 | 153 | #pragma mark - 语言 |
| ... | ... | @@ -187,6 +193,7 @@ |
| 187 | 193 | |
| 188 | 194 | |
| 189 | 195 | - (void)applicationDidEnterBackground:(UIApplication *)application { |
| 196 | + [[NSNotificationCenter defaultCenter] postNotificationName:RESIGNACTIVE object:nil]; | |
| 190 | 197 | // Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later. |
| 191 | 198 | // If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits. |
| 192 | 199 | } |
| ... | ... | @@ -195,13 +202,34 @@ |
| 195 | 202 | - (void)applicationWillEnterForeground:(UIApplication *)application { |
| 196 | 203 | // Called as part of the transition from the background to the active state; here you can undo many of the changes made on entering the background. |
| 197 | 204 | self.isPush = NO; |
| 198 | - | |
| 205 | + NSString *urlStr = REQUESTURL(@"gxb/openBanner"); | |
| 206 | + NSDictionary *parameters = @{@"params":@"{\"plat\":\"i\",\"version\":\"5.0\",\"appid\":\"gxb\",\"pageUUID\":\"852cde69-ecd8-11e6-b52e-c7d8a7a18cc4\",\"pageType\":\"channelList\"}"}; | |
| 207 | + [XWHTTPTool GET:urlStr params:parameters success:^(id json) { | |
| 208 | + NSDictionary *dic = [NSDictionary dictionaryWithDictionary:json]; | |
| 209 | + if (dic[@"homeTitleColor"]&&![dic[@"homeTitleColor"] isEqualToString:@""]) { | |
| 210 | + [[NSUserDefaults standardUserDefaults] setValue:dic[@"homeTitleColor"] forKey:HOMETITLECOLOR]; | |
| 211 | + }else | |
| 212 | + { | |
| 213 | + [[NSUserDefaults standardUserDefaults] setValue:nil forKey:HOMETITLECOLOR]; | |
| 214 | + } | |
| 215 | + NSString * mode = dic[@"grayMode"]; | |
| 216 | + if (mode&&mode.intValue == 1 && ![[NSUserDefaults standardUserDefaults] boolForKey:ISGRAYMODE]) { | |
| 217 | + [[NSUserDefaults standardUserDefaults] setBool:YES forKey:ISGRAYMODE]; | |
| 218 | + [self addRootViewController]; | |
| 219 | + }else if (mode&&mode.intValue == 0 && [[NSUserDefaults standardUserDefaults] boolForKey:ISGRAYMODE]){ | |
| 220 | + [[NSUserDefaults standardUserDefaults] setBool:NO forKey:ISGRAYMODE]; | |
| 221 | + [self addRootViewController]; | |
| 222 | + } | |
| 223 | + | |
| 224 | + } failure:^(NSError *error) { | |
| 225 | + | |
| 226 | + }]; | |
| 199 | 227 | } |
| 200 | 228 | |
| 201 | 229 | |
| 202 | 230 | - (void)applicationDidBecomeActive:(UIApplication *)application { |
| 203 | 231 | // Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface. |
| 204 | - | |
| 232 | + [[NSNotificationCenter defaultCenter] postNotificationName:BECOMEACTIVE object:nil]; | |
| 205 | 233 | if (self.isPush) { |
| 206 | 234 | if([self.window.rootViewController isKindOfClass:[XLSlideMenu class]]){ |
| 207 | 235 | XLSlideMenu *menu = (XLSlideMenu *)self.window.rootViewController; |
| ... | ... | @@ -535,27 +563,30 @@ |
| 535 | 563 | NSDictionary *infoDict = [[NSBundle mainBundle] infoDictionary]; |
| 536 | 564 | NSString *nowVersion = [infoDict objectForKey:@"CFBundleShortVersionString"]; |
| 537 | 565 | NSURL *url = [NSURL URLWithString:[NSString stringWithFormat:@"https://itunes.apple.com/lookup?id=%@", uAppId]]; |
| 538 | - NSString * file = [NSString stringWithContentsOfURL:url encoding:NSUTF8StringEncoding error:nil]; | |
| 539 | - NSDictionary *dic = [file objectFromJSONString]; | |
| 540 | - NSDictionary *results = [[dic objectForKey:@"results"] firstObject]; | |
| 541 | - NSString *newVersion =[results objectForKey:@"version"]; | |
| 542 | - if([newVersion compare:nowVersion options:NSNumericSearch] == NSOrderedDescending) { | |
| 543 | - [[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"upDate"]; | |
| 544 | - UIAlertView *alert = [[UIAlertView alloc] initWithTitle:CustomStr(@"VersionUpdate") | |
| 545 | - message:[results objectForKey:@"releaseNotes"] | |
| 546 | - delegate:self | |
| 547 | - cancelButtonTitle:CustomStr(@"Cancel") | |
| 548 | - otherButtonTitles:CustomStr(@"Update"),nil]; | |
| 549 | - [alert show]; | |
| 550 | - return; | |
| 551 | - } | |
| 552 | -} | |
| 553 | -- (void)alertView:(UIAlertView*)alertView clickedButtonAtIndex:(NSInteger)buttonIndex{ | |
| 554 | - if(buttonIndex == 1){ | |
| 555 | - // 此处加入应用在app store的地址,方便用户去更新,一种实现方式如下: | |
| 556 | - NSURL *url = [NSURL URLWithString:[NSString stringWithFormat:@"https://itunes.apple.com/us/app/id%@?ls=1&mt=8", uAppId]]; | |
| 557 | - [[UIApplication sharedApplication] openURL:url]; | |
| 558 | - } | |
| 566 | + dispatch_async(dispatch_get_global_queue(0, 0), ^{ | |
| 567 | + NSString * file = [NSString stringWithContentsOfURL:url encoding:NSUTF8StringEncoding error:nil]; | |
| 568 | + NSDictionary *dic = [file objectFromJSONString]; | |
| 569 | + if (dic.count<=0) { | |
| 570 | + return; | |
| 571 | + } | |
| 572 | + NSDictionary *results = [[dic objectForKey:@"results"] firstObject]; | |
| 573 | + NSString *newVersion =[results objectForKey:@"version"]; | |
| 574 | + if([newVersion compare:nowVersion options:NSNumericSearch] == NSOrderedDescending) { | |
| 575 | + [[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"upDate"]; | |
| 576 | + dispatch_async(dispatch_get_main_queue(), ^{ | |
| 577 | + UIAlertController *alertVC = [UIAlertController alertControllerWithTitle:CustomStr(@"VersionUpdate") message:[results objectForKey:@"releaseNotes"] preferredStyle:UIAlertControllerStyleAlert]; | |
| 578 | + UIAlertAction *action1 = [UIAlertAction actionWithTitle:CustomStr(@"Update") style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) { | |
| 579 | + NSURL *url = [NSURL URLWithString:[NSString stringWithFormat:@"https://itunes.apple.com/us/app/id%@?ls=1&mt=8", uAppId]]; | |
| 580 | + [[UIApplication sharedApplication] openURL:url]; | |
| 581 | + }]; | |
| 582 | + UIAlertAction *action2 = [UIAlertAction actionWithTitle:CustomStr(@"Cancel") style:UIAlertActionStyleCancel handler:nil]; | |
| 583 | + [alertVC addAction:action2]; | |
| 584 | + [alertVC addAction:action1]; | |
| 585 | + [self.window.rootViewController presentViewController:alertVC animated:YES completion:nil]; | |
| 586 | + }); | |
| 587 | + } | |
| 588 | + }); | |
| 589 | + | |
| 559 | 590 | } |
| 560 | 591 | - (BOOL)shouldAutorotate { |
| 561 | 592 | return NO; | ... | ... |
CNLiveScioLive/Assets.xcassets/Home/cnlive_CN.imageset/Contents.json
| 1 | 1 | { |
| 2 | 2 | "images" : [ |
| 3 | 3 | { |
| 4 | - "idiom" : "universal", | |
| 5 | 4 | "filename" : "cnlive_CN.png", |
| 5 | + "idiom" : "universal", | |
| 6 | 6 | "scale" : "1x" |
| 7 | 7 | }, |
| 8 | 8 | { |
| 9 | - "idiom" : "universal", | |
| 10 | 9 | "filename" : "cnlive_CN@2x.png", |
| 10 | + "idiom" : "universal", | |
| 11 | 11 | "scale" : "2x" |
| 12 | 12 | }, |
| 13 | 13 | { |
| 14 | 14 | "idiom" : "universal", |
| 15 | - "filename" : "cnlive_CN@3x.png", | |
| 16 | 15 | "scale" : "3x" |
| 17 | 16 | } |
| 18 | 17 | ], |
| 19 | 18 | "info" : { |
| 20 | - "version" : 1, | |
| 21 | - "author" : "xcode" | |
| 19 | + "author" : "xcode", | |
| 20 | + "version" : 1 | |
| 22 | 21 | } |
| 23 | -} | |
| 24 | 22 | \ No newline at end of file |
| 23 | +} | ... | ... |
CNLiveScioLive/Assets.xcassets/Home/cnlive_CN.imageset/cnlive_CN@3x.png deleted
100644 → 0
2.4 KB
CNLiveScioLive/Assets.xcassets/Home/cnlive_EN.imageset/Contents.json
| ... | ... | @@ -5,18 +5,17 @@ |
| 5 | 5 | "scale" : "1x" |
| 6 | 6 | }, |
| 7 | 7 | { |
| 8 | - "idiom" : "universal", | |
| 9 | 8 | "filename" : "cnlive_EN@2x.png", |
| 9 | + "idiom" : "universal", | |
| 10 | 10 | "scale" : "2x" |
| 11 | 11 | }, |
| 12 | 12 | { |
| 13 | 13 | "idiom" : "universal", |
| 14 | - "filename" : "cnlive_EN@3x.png", | |
| 15 | 14 | "scale" : "3x" |
| 16 | 15 | } |
| 17 | 16 | ], |
| 18 | 17 | "info" : { |
| 19 | - "version" : 1, | |
| 20 | - "author" : "xcode" | |
| 18 | + "author" : "xcode", | |
| 19 | + "version" : 1 | |
| 21 | 20 | } |
| 22 | -} | |
| 23 | 21 | \ No newline at end of file |
| 22 | +} | ... | ... |
CNLiveScioLive/Assets.xcassets/Home/cnlive_EN.imageset/cnlive_EN@3x.png deleted
100755 → 0
1.92 KB
CNLiveScioLive/Assets.xcassets/Home/cnlive_additional_screening.imageset/Contents.json
| ... | ... | @@ -5,18 +5,18 @@ |
| 5 | 5 | "scale" : "1x" |
| 6 | 6 | }, |
| 7 | 7 | { |
| 8 | - "idiom" : "universal", | |
| 9 | 8 | "filename" : "cnlive_additional_screening@2x.png", |
| 9 | + "idiom" : "universal", | |
| 10 | 10 | "scale" : "2x" |
| 11 | 11 | }, |
| 12 | 12 | { |
| 13 | - "idiom" : "universal", | |
| 14 | 13 | "filename" : "cnlive_additional_screening@3x.png", |
| 14 | + "idiom" : "universal", | |
| 15 | 15 | "scale" : "3x" |
| 16 | 16 | } |
| 17 | 17 | ], |
| 18 | 18 | "info" : { |
| 19 | - "version" : 1, | |
| 20 | - "author" : "xcode" | |
| 19 | + "author" : "xcode", | |
| 20 | + "version" : 1 | |
| 21 | 21 | } |
| 22 | -} | |
| 23 | 22 | \ No newline at end of file |
| 23 | +} | ... | ... |
CNLiveScioLive/Assets.xcassets/Home/cnlive_blue_search.imageset/Contents.json
| ... | ... | @@ -5,18 +5,17 @@ |
| 5 | 5 | "scale" : "1x" |
| 6 | 6 | }, |
| 7 | 7 | { |
| 8 | - "idiom" : "universal", | |
| 9 | 8 | "filename" : "cnlive_blue_search@2x.png", |
| 9 | + "idiom" : "universal", | |
| 10 | 10 | "scale" : "2x" |
| 11 | 11 | }, |
| 12 | 12 | { |
| 13 | 13 | "idiom" : "universal", |
| 14 | - "filename" : "cnlive_blue_search@3x.png", | |
| 15 | 14 | "scale" : "3x" |
| 16 | 15 | } |
| 17 | 16 | ], |
| 18 | 17 | "info" : { |
| 19 | - "version" : 1, | |
| 20 | - "author" : "xcode" | |
| 18 | + "author" : "xcode", | |
| 19 | + "version" : 1 | |
| 21 | 20 | } |
| 22 | -} | |
| 23 | 21 | \ No newline at end of file |
| 22 | +} | ... | ... |
CNLiveScioLive/Assets.xcassets/Home/cnlive_blue_search.imageset/cnlive_blue_search@3x.png deleted
100644 → 0
2.04 KB
CNLiveScioLive/Assets.xcassets/Home/cnlive_classification.imageset/Contents.json
| ... | ... | @@ -5,18 +5,17 @@ |
| 5 | 5 | "scale" : "1x" |
| 6 | 6 | }, |
| 7 | 7 | { |
| 8 | - "idiom" : "universal", | |
| 9 | 8 | "filename" : "cnlive_classification@2x.png", |
| 9 | + "idiom" : "universal", | |
| 10 | 10 | "scale" : "2x" |
| 11 | 11 | }, |
| 12 | 12 | { |
| 13 | 13 | "idiom" : "universal", |
| 14 | - "filename" : "cnlive_classification@3x.png", | |
| 15 | 14 | "scale" : "3x" |
| 16 | 15 | } |
| 17 | 16 | ], |
| 18 | 17 | "info" : { |
| 19 | - "version" : 1, | |
| 20 | - "author" : "xcode" | |
| 18 | + "author" : "xcode", | |
| 19 | + "version" : 1 | |
| 21 | 20 | } |
| 22 | -} | |
| 23 | 21 | \ No newline at end of file |
| 22 | +} | ... | ... |
CNLiveScioLive/Assets.xcassets/Home/cnlive_classification.imageset/cnlive_classification@3x.png deleted
100755 → 0
683 Bytes
CNLiveScioLive/Assets.xcassets/Home/cnlive_column.imageset/Contents.json
| ... | ... | @@ -5,18 +5,18 @@ |
| 5 | 5 | "scale" : "1x" |
| 6 | 6 | }, |
| 7 | 7 | { |
| 8 | - "idiom" : "universal", | |
| 9 | 8 | "filename" : "cnlive_column@2x.png", |
| 9 | + "idiom" : "universal", | |
| 10 | 10 | "scale" : "2x" |
| 11 | 11 | }, |
| 12 | 12 | { |
| 13 | - "idiom" : "universal", | |
| 14 | 13 | "filename" : "cnlive_column@3x.png", |
| 14 | + "idiom" : "universal", | |
| 15 | 15 | "scale" : "3x" |
| 16 | 16 | } |
| 17 | 17 | ], |
| 18 | 18 | "info" : { |
| 19 | - "version" : 1, | |
| 20 | - "author" : "xcode" | |
| 19 | + "author" : "xcode", | |
| 20 | + "version" : 1 | |
| 21 | 21 | } |
| 22 | -} | |
| 23 | 22 | \ No newline at end of file |
| 23 | +} | ... | ... |
CNLiveScioLive/Assets.xcassets/Home/cnlive_column.imageset/cnlive_column@3x.png
100755 → 100644
CNLiveScioLive/Assets.xcassets/Home/cnlive_icon.imageset/Contents.json
| ... | ... | @@ -5,18 +5,17 @@ |
| 5 | 5 | "scale" : "1x" |
| 6 | 6 | }, |
| 7 | 7 | { |
| 8 | - "idiom" : "universal", | |
| 9 | 8 | "filename" : "cnlive_icon@2x.png", |
| 9 | + "idiom" : "universal", | |
| 10 | 10 | "scale" : "2x" |
| 11 | 11 | }, |
| 12 | 12 | { |
| 13 | 13 | "idiom" : "universal", |
| 14 | - "filename" : "cnlive_icon@3x.png", | |
| 15 | 14 | "scale" : "3x" |
| 16 | 15 | } |
| 17 | 16 | ], |
| 18 | 17 | "info" : { |
| 19 | - "version" : 1, | |
| 20 | - "author" : "xcode" | |
| 18 | + "author" : "xcode", | |
| 19 | + "version" : 1 | |
| 21 | 20 | } |
| 22 | -} | |
| 23 | 21 | \ No newline at end of file |
| 22 | +} | ... | ... |
CNLiveScioLive/Assets.xcassets/Home/cnlive_icon.imageset/cnlive_icon@3x.png deleted
100755 → 0
9.18 KB
CNLiveScioLive/Assets.xcassets/Home/cnlive_pitch.imageset/Contents.json
| 1 | 1 | { |
| 2 | 2 | "images" : [ |
| 3 | 3 | { |
| 4 | - "idiom" : "universal", | |
| 5 | 4 | "filename" : "cnlive_pitch.png", |
| 5 | + "idiom" : "universal", | |
| 6 | 6 | "scale" : "1x" |
| 7 | 7 | }, |
| 8 | 8 | { |
| 9 | - "idiom" : "universal", | |
| 10 | 9 | "filename" : "cnlive_pitch@2x.png", |
| 10 | + "idiom" : "universal", | |
| 11 | 11 | "scale" : "2x" |
| 12 | 12 | }, |
| 13 | 13 | { |
| 14 | - "idiom" : "universal", | |
| 15 | 14 | "filename" : "cnlive_pitch@3x.png", |
| 15 | + "idiom" : "universal", | |
| 16 | 16 | "scale" : "3x" |
| 17 | 17 | } |
| 18 | 18 | ], |
| 19 | 19 | "info" : { |
| 20 | - "version" : 1, | |
| 21 | - "author" : "xcode" | |
| 20 | + "author" : "xcode", | |
| 21 | + "version" : 1 | |
| 22 | 22 | } |
| 23 | -} | |
| 24 | 23 | \ No newline at end of file |
| 24 | +} | ... | ... |
CNLiveScioLive/Assets.xcassets/Home/cnlive_scan.imageset/Contents.json
| ... | ... | @@ -5,18 +5,18 @@ |
| 5 | 5 | "scale" : "1x" |
| 6 | 6 | }, |
| 7 | 7 | { |
| 8 | - "idiom" : "universal", | |
| 9 | 8 | "filename" : "cnlive_scan@2x.png", |
| 9 | + "idiom" : "universal", | |
| 10 | 10 | "scale" : "2x" |
| 11 | 11 | }, |
| 12 | 12 | { |
| 13 | - "idiom" : "universal", | |
| 14 | 13 | "filename" : "cnlive_scan@3x.png", |
| 14 | + "idiom" : "universal", | |
| 15 | 15 | "scale" : "3x" |
| 16 | 16 | } |
| 17 | 17 | ], |
| 18 | 18 | "info" : { |
| 19 | - "version" : 1, | |
| 20 | - "author" : "xcode" | |
| 19 | + "author" : "xcode", | |
| 20 | + "version" : 1 | |
| 21 | 21 | } |
| 22 | -} | |
| 23 | 22 | \ No newline at end of file |
| 23 | +} | ... | ... |
CNLiveScioLive/Assets.xcassets/common/placeholder.imageset/91620976418_.pic_hd.jpg
0 → 100644
58.3 KB
CNLiveScioLive/Assets.xcassets/common/placeholder.imageset/Contents.json
| ... | ... | @@ -5,8 +5,8 @@ |
| 5 | 5 | "scale" : "1x" |
| 6 | 6 | }, |
| 7 | 7 | { |
| 8 | + "filename" : "91620976418_.pic_hd.jpg", | |
| 8 | 9 | "idiom" : "universal", |
| 9 | - "filename" : "placeholder@2x.png", | |
| 10 | 10 | "scale" : "2x" |
| 11 | 11 | }, |
| 12 | 12 | { |
| ... | ... | @@ -15,7 +15,7 @@ |
| 15 | 15 | } |
| 16 | 16 | ], |
| 17 | 17 | "info" : { |
| 18 | - "version" : 1, | |
| 19 | - "author" : "xcode" | |
| 18 | + "author" : "xcode", | |
| 19 | + "version" : 1 | |
| 20 | 20 | } |
| 21 | -} | |
| 22 | 21 | \ No newline at end of file |
| 22 | +} | ... | ... |
CNLiveScioLive/Assets.xcassets/common/placeholder.imageset/placeholder@2x.png deleted
100644 → 0
8.35 KB
CNLiveScioLive/Assets.xcassets/tabbar/my_tabbar.imageset/Contents.json
| ... | ... | @@ -5,18 +5,17 @@ |
| 5 | 5 | "scale" : "1x" |
| 6 | 6 | }, |
| 7 | 7 | { |
| 8 | - "idiom" : "universal", | |
| 9 | 8 | "filename" : "my_tabbar@2x.png", |
| 9 | + "idiom" : "universal", | |
| 10 | 10 | "scale" : "2x" |
| 11 | 11 | }, |
| 12 | 12 | { |
| 13 | 13 | "idiom" : "universal", |
| 14 | - "filename" : "my_tabbar@3x.png", | |
| 15 | 14 | "scale" : "3x" |
| 16 | 15 | } |
| 17 | 16 | ], |
| 18 | 17 | "info" : { |
| 19 | - "version" : 1, | |
| 20 | - "author" : "xcode" | |
| 18 | + "author" : "xcode", | |
| 19 | + "version" : 1 | |
| 21 | 20 | } |
| 22 | -} | |
| 23 | 21 | \ No newline at end of file |
| 22 | +} | ... | ... |
CNLiveScioLive/Assets.xcassets/tabbar/my_tabbar.imageset/my_tabbar@3x.png deleted
100755 → 0
2.61 KB
CNLiveScioLive/Assets.xcassets/tabbar/my_tabbar_sel.imageset/Contents.json
| ... | ... | @@ -5,18 +5,17 @@ |
| 5 | 5 | "scale" : "1x" |
| 6 | 6 | }, |
| 7 | 7 | { |
| 8 | - "idiom" : "universal", | |
| 9 | 8 | "filename" : "my_tabbar_sel@2x.png", |
| 9 | + "idiom" : "universal", | |
| 10 | 10 | "scale" : "2x" |
| 11 | 11 | }, |
| 12 | 12 | { |
| 13 | 13 | "idiom" : "universal", |
| 14 | - "filename" : "my_tabbar_sel@3x.png", | |
| 15 | 14 | "scale" : "3x" |
| 16 | 15 | } |
| 17 | 16 | ], |
| 18 | 17 | "info" : { |
| 19 | - "version" : 1, | |
| 20 | - "author" : "xcode" | |
| 18 | + "author" : "xcode", | |
| 19 | + "version" : 1 | |
| 21 | 20 | } |
| 22 | -} | |
| 23 | 21 | \ No newline at end of file |
| 22 | +} | ... | ... |
CNLiveScioLive/Assets.xcassets/tabbar/my_tabbar_sel.imageset/my_tabbar_sel@3x.png deleted
100755 → 0
2.82 KB
CNLiveScioLive/Pages/Base/CNLiveBaseViewController.m
| ... | ... | @@ -60,7 +60,12 @@ |
| 60 | 60 | [headerButton setImage:[UIImage imageNamed:@"cnlive_icon"] forState:UIControlStateSelected]; |
| 61 | 61 | |
| 62 | 62 | [headerButton setTitle:_name forState:UIControlStateNormal]; |
| 63 | + if (HOMETITLECOLORSTR) { | |
| 64 | + [headerButton setTitleColor:[UIColor colorWithHexString:HOMETITLECOLORSTR] forState:UIControlStateNormal]; | |
| 65 | + }else{ | |
| 63 | 66 | [headerButton setTitleColor:Color_Blue forState:UIControlStateNormal]; |
| 67 | + } | |
| 68 | + | |
| 64 | 69 | headerButton.titleLabel.font = [UIFont systemFontOfSize:15]; |
| 65 | 70 | |
| 66 | 71 | headerButton.contentHorizontalAlignment = UIControlContentHorizontalAlignmentLeft;//居左显示 |
| ... | ... | @@ -83,7 +88,11 @@ |
| 83 | 88 | |
| 84 | 89 | self.navigationItem.rightBarButtonItem = item2; |
| 85 | 90 | } |
| 86 | - | |
| 91 | +-(BOOL)forceEnableInteractivePopGestureRecognizer | |
| 92 | +{ | |
| 93 | + return YES; | |
| 94 | + | |
| 95 | +} | |
| 87 | 96 | - (void)didReceiveMemoryWarning { |
| 88 | 97 | [super didReceiveMemoryWarning]; |
| 89 | 98 | // Dispose of any resources that can be recreated. | ... | ... |
CNLiveScioLive/Pages/Header/PrefixHeader.pch
CNLiveScioLive/Pages/Header/SystemMacro.h
| ... | ... | @@ -151,4 +151,8 @@ NO) |
| 151 | 151 | #define leftImageCellWidth (MainScreenWidth*3/8) |
| 152 | 152 | #define threeImageCellWidth ((cellItemWidth - 16)/3) |
| 153 | 153 | |
| 154 | +//通知 | |
| 155 | +#define RESIGNACTIVE @"resignActive" | |
| 156 | +#define BECOMEACTIVE @"becomeActive" | |
| 157 | + | |
| 154 | 158 | #endif /* SystemMacro_h */ | ... | ... |
CNLiveScioLive/Pages/Header/UrlMacro.h
| ... | ... | @@ -9,8 +9,8 @@ |
| 9 | 9 | #ifndef UrlMacro_h |
| 10 | 10 | #define UrlMacro_h |
| 11 | 11 | |
| 12 | -#define REQUESTURL(url) [@"http://test.app.phonemovie.cnlive.com/" stringByAppendingPathComponent:url] //测试环境 | |
| 13 | -//#define REQUESTURL(url) [@"http://app.phonemovie.cnlive.com/" stringByAppendingPathComponent:url] //正式环境 | |
| 12 | +//#define REQUESTURL(url) [@"http://test.app.phonemovie.cnlive.com/" stringByAppendingPathComponent:url] //测试环境 | |
| 13 | +#define REQUESTURL(url) [@"http://app.phonemovie.cnlive.com/" stringByAppendingPathComponent:url] //正式环境 | |
| 14 | 14 | |
| 15 | 15 | #define IS_STRING_EMPTY(string) (string==nil || string == NULL || [string isKindOfClass:[NSNull class]] || [[string stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]] length]==0 || [string isEqualToString:@""] || [string isEqualToString:@"<null>"]) |
| 16 | 16 | |
| ... | ... | @@ -48,7 +48,6 @@ |
| 48 | 48 | //#define tuwen(id) [NSString stringWithFormat:@"http://www.scio.gov.cn:9095/video/JsonDataFromGXW.aspx/JsonDataFromGXW.aspx?type=Doc&DocID=%d",id] |
| 49 | 49 | #define tuwen(id) [NSString stringWithFormat:@"http://www.scio.gov.cn:9095/video/JsonDataFromGXW.aspx?type=Doc&DocID=%d",id] |
| 50 | 50 | |
| 51 | -#define FORECAST REQUESTURL(@"gxb/api/") | |
| 52 | 51 | #define yugaoliebiao @"http://www.scio.gov.cn:9095/video/JsonDataFromGXW.aspx?type=DocList&ChannelID=20490" |
| 53 | 52 | //#define newsdetail(id) [NSString stringWithFormat:@"http://www.scio.gov.cn:9095/video/JsonDataFromGXW.aspx/JsonDataFromGXW.aspx?type=Doc&DocID=%d",id] |
| 54 | 53 | ... | ... |
CNLiveScioLive/Pages/Home/CNHomeBaseViewController.h deleted
100755 → 0
| 1 | -// | |
| 2 | -// CNHomeBaseViewController.h | |
| 3 | -// CNLiveScioLive | |
| 4 | -// | |
| 5 | -// Created by CNLive-zxw on 2018/9/21. | |
| 6 | -// Copyright © 2018年 CNLive. All rights reserved. | |
| 7 | -// | |
| 8 | - | |
| 9 | -#import "CNLiveBaseViewController.h" | |
| 10 | - | |
| 11 | -@interface CNHomeBaseViewController : CNLiveBaseViewController | |
| 12 | -@property (nonatomic, copy) NSString *cid; | |
| 13 | - | |
| 14 | -@end |
CNLiveScioLive/Pages/Home/CNHomeBaseViewController.m deleted
100755 → 0
| 1 | -// | |
| 2 | -// CNHomeBaseViewController.m | |
| 3 | -// CNLiveScioLive | |
| 4 | -// | |
| 5 | -// Created by CNLive-zxw on 2018/9/21. | |
| 6 | -// Copyright © 2018年 CNLive. All rights reserved. | |
| 7 | -// | |
| 8 | - | |
| 9 | -#import "CNHomeBaseViewController.h" | |
| 10 | -#import "CNHomeModel.h" | |
| 11 | - | |
| 12 | -#import "CNLiveNewsNoPicTableViewCell.h" | |
| 13 | -#import "CNLiveNewsThreePicTableViewCell.h" | |
| 14 | -#import "CNLiveNewsLeftPicTableViewCell.h" | |
| 15 | -#import "CNLiveNewsUpPicTableViewCell.h" | |
| 16 | - | |
| 17 | - | |
| 18 | -@interface CNHomeBaseViewController ()<UITableViewDelegate,UITableViewDataSource> | |
| 19 | -@property (nonatomic, strong) UITableView *tableView; | |
| 20 | -@property (nonatomic, strong) NSMutableArray *data; | |
| 21 | -@property (nonatomic, assign) NSInteger pageNo; | |
| 22 | -@property (nonatomic, assign) BOOL isRefreshing; | |
| 23 | - | |
| 24 | -@end | |
| 25 | - | |
| 26 | -@implementation CNHomeBaseViewController | |
| 27 | -static NSString *newsNoPicTableViewCell = @"CNLiveNewsNoPicTableViewCell"; | |
| 28 | -static NSString *newsThreePicTableViewCell = @"CNLiveNewsThreePicTableViewCell"; | |
| 29 | -static NSString *newsLeftPicTableViewCell = @"CNLiveNewsLeftPicTableViewCell"; | |
| 30 | -static NSString *newsUpPicTableViewCell = @"CNLiveNewsUpPicTableViewCell"; | |
| 31 | - | |
| 32 | -#pragma mark - Data | |
| 33 | -- (void)loadData{ | |
| 34 | - NSString *strUrl = REQUESTURL(@"gxb/api/cataloglatest"); | |
| 35 | - //NSLog(@"%@",strUrl); | |
| 36 | - NSString *categoryId = [NSString stringWithFormat:@"{\"plat\":\"i\",\"version\":\"5.0\",\"appid\":\"gxb\",\"categoryId\":\"%@\",\"page\":\"%ld\",\"pageSize\":\"10\"}",self.cid,(long)self.pageNo]; | |
| 37 | - //NSLog(@"%@",categoryId); | |
| 38 | - NSDictionary *parameters = @{@"params":categoryId}; | |
| 39 | - | |
| 40 | - if (![[Reachability reachabilityForInternetConnection] currentReachabilityStatus]) { | |
| 41 | - [AlertViewTool showHUDViewText:CustomStr(@"NetworkiInterruption")]; | |
| 42 | - [self.tableView.mj_header endRefreshing]; | |
| 43 | - [self.tableView.mj_footer endRefreshing]; | |
| 44 | - self->_isRefreshing = NO; | |
| 45 | - return; | |
| 46 | - } | |
| 47 | - [AlertViewTool showHUDView]; | |
| 48 | - [XWHTTPTool POST:strUrl params:parameters success:^(id json) { | |
| 49 | - [AlertViewTool hideHUDView]; | |
| 50 | - | |
| 51 | - // 请求成功,解析数据 | |
| 52 | - NSDictionary *dic = [NSDictionary dictionaryWithDictionary:json]; | |
| 53 | - | |
| 54 | - if ([dic[@"errorCode"] isEqualToString:@"0"]) { | |
| 55 | - | |
| 56 | - if ([dic[@"programs"] isKindOfClass:[NSArray class]]) { | |
| 57 | - NSArray *lists = dic[@"programs"]; | |
| 58 | - if(self->_pageNo == 1&&lists.count > 0){ | |
| 59 | - [self.data removeAllObjects]; | |
| 60 | - } | |
| 61 | - self->_pageNo++; | |
| 62 | - for (NSDictionary *dics in lists) { | |
| 63 | - [CNHomeModel mj_setupReplacedKeyFromPropertyName:^NSDictionary *{ | |
| 64 | - return @{ @"ID" : @"id" ,@"Description" : @"description" }; | |
| 65 | - }]; | |
| 66 | - NSLog(@"%@",dics); | |
| 67 | - [self.data addObject:[CNHomeModel mj_objectWithKeyValues:dics]]; | |
| 68 | - | |
| 69 | - } | |
| 70 | - } | |
| 71 | - | |
| 72 | - } else { | |
| 73 | - [AlertViewTool showHUDViewText:dic[@"errorMessage"]]; | |
| 74 | - | |
| 75 | - } | |
| 76 | - [self.tableView.mj_header endRefreshing]; | |
| 77 | - | |
| 78 | - if ([dic[@"nextCursor"] isEqualToString:@"0"]) { | |
| 79 | - [self.tableView.mj_footer endRefreshingWithNoMoreData]; | |
| 80 | - | |
| 81 | - } else { | |
| 82 | - [self.tableView.mj_footer endRefreshing]; | |
| 83 | - | |
| 84 | - } | |
| 85 | - [self.tableView reloadData]; | |
| 86 | - self->_isRefreshing = NO; | |
| 87 | - | |
| 88 | - | |
| 89 | - } failure:^(NSError *error) { | |
| 90 | - [AlertViewTool hideHUDView]; | |
| 91 | - [AlertViewTool showHUDViewText:CustomStr(@"ServerBusy")]; | |
| 92 | - self->_isRefreshing = NO; | |
| 93 | - | |
| 94 | - }]; | |
| 95 | -} | |
| 96 | - | |
| 97 | -- (void)loadUpData{ | |
| 98 | - _pageNo = 1; | |
| 99 | - if(!_isRefreshing){ | |
| 100 | - _isRefreshing = YES; | |
| 101 | - [self loadData]; | |
| 102 | - } | |
| 103 | -} | |
| 104 | -- (void)loadMoreData{ | |
| 105 | - if(!_isRefreshing){ | |
| 106 | - _isRefreshing = YES; | |
| 107 | - [self loadData]; | |
| 108 | - } | |
| 109 | -} | |
| 110 | - | |
| 111 | -- (void)viewDidLoad { | |
| 112 | - [super viewDidLoad]; | |
| 113 | - | |
| 114 | - _pageNo = 1; | |
| 115 | - _isRefreshing = NO; | |
| 116 | - | |
| 117 | - [self loadData]; | |
| 118 | - [self.view addSubview:self.tableView]; | |
| 119 | - | |
| 120 | - // Do any additional setup after loading the view. | |
| 121 | -} | |
| 122 | - | |
| 123 | -- (void)didReceiveMemoryWarning { | |
| 124 | - [super didReceiveMemoryWarning]; | |
| 125 | - // Dispose of any resources that can be recreated. | |
| 126 | -} | |
| 127 | -#pragma mark - UITableViewDelegate | |
| 128 | -- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{ | |
| 129 | - CNHomeModel *model = self.data[indexPath.row]; | |
| 130 | - if([model.showType isEqualToString:@"0"]){ | |
| 131 | - return 200*MainHScale+85;//一张图 上边 | |
| 132 | - | |
| 133 | - } | |
| 134 | - else if([model.showType isEqualToString:@"1"]){ | |
| 135 | - if(model.img && ![model.img isEqualToString:@""]){ | |
| 136 | - return 80*MainScale+20;//一张图 左边 | |
| 137 | - } | |
| 138 | -// return model.titleHeight+40;//无图 | |
| 139 | - return 80*MainScale+20;//一张图 左边 | |
| 140 | - | |
| 141 | - } | |
| 142 | - else if([model.showType isEqualToString:@"2"]){ | |
| 143 | - return (MainScreenWidth-20-20)/3.0+85;//三张图 | |
| 144 | - | |
| 145 | - } | |
| 146 | - else if([model.showType isEqualToString:@"3"]){ | |
| 147 | - if(model.img && ![model.img isEqualToString:@""]){ | |
| 148 | - return 80*MainScale+20;//一张图 左边 | |
| 149 | - } | |
| 150 | -// return model.titleHeight+40;//无图 | |
| 151 | - return 80*MainScale+20;//一张图 左边 | |
| 152 | - | |
| 153 | - }else{ | |
| 154 | -// return model.titleHeight+40;//无图 | |
| 155 | - return 80*MainScale+20;//一张图 左边 | |
| 156 | - | |
| 157 | - } | |
| 158 | -} | |
| 159 | - | |
| 160 | -#pragma mark - UITableViewDataSource | |
| 161 | -- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{ | |
| 162 | - return self.data.count; | |
| 163 | - | |
| 164 | -} | |
| 165 | - | |
| 166 | -- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{ | |
| 167 | - CNHomeModel *model = self.data[indexPath.row]; | |
| 168 | - if([model.showType isEqualToString:@"0"]){ | |
| 169 | - //一张图 上边 | |
| 170 | - CNLiveNewsUpPicTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:newsUpPicTableViewCell]; | |
| 171 | - if (!cell) { | |
| 172 | - cell = [[CNLiveNewsUpPicTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:newsUpPicTableViewCell]; | |
| 173 | - } | |
| 174 | - cell.selectionStyle = UITableViewCellSelectionStyleNone; | |
| 175 | - cell.model = self.data[indexPath.row]; | |
| 176 | - return cell; | |
| 177 | - | |
| 178 | - } | |
| 179 | - else if([model.showType isEqualToString:@"2"]){ | |
| 180 | - //三张图 | |
| 181 | - CNLiveNewsThreePicTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:newsThreePicTableViewCell]; | |
| 182 | - if (!cell) { | |
| 183 | - cell = [[CNLiveNewsThreePicTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:newsThreePicTableViewCell]; | |
| 184 | - } | |
| 185 | - cell.selectionStyle = UITableViewCellSelectionStyleNone; | |
| 186 | - cell.model = self.data[indexPath.row]; | |
| 187 | - return cell; | |
| 188 | - | |
| 189 | - } | |
| 190 | - else { | |
| 191 | - if(model.img){ | |
| 192 | - //一张图 左边 | |
| 193 | - CNLiveNewsLeftPicTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:newsLeftPicTableViewCell]; | |
| 194 | - if (!cell) { | |
| 195 | - cell = [[CNLiveNewsLeftPicTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:newsLeftPicTableViewCell]; | |
| 196 | - } | |
| 197 | - cell.selectionStyle = UITableViewCellSelectionStyleNone; | |
| 198 | - cell.model = self.data[indexPath.row]; | |
| 199 | - return cell; | |
| 200 | - } | |
| 201 | - //无图 | |
| 202 | - CNLiveNewsNoPicTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:newsNoPicTableViewCell]; | |
| 203 | - if (!cell) { | |
| 204 | - cell = [[CNLiveNewsNoPicTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:newsNoPicTableViewCell]; | |
| 205 | - } | |
| 206 | -// CNLiveNewsLeftPicTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:newsLeftPicTableViewCell]; | |
| 207 | -// if (!cell) { | |
| 208 | -// cell = [[CNLiveNewsLeftPicTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:newsLeftPicTableViewCell]; | |
| 209 | -// } | |
| 210 | - cell.selectionStyle = UITableViewCellSelectionStyleNone; | |
| 211 | - cell.model = self.data[indexPath.row]; | |
| 212 | - return cell; | |
| 213 | - } | |
| 214 | - | |
| 215 | -} | |
| 216 | -- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{ | |
| 217 | - CNHomeModel *model = self.data[indexPath.row]; | |
| 218 | - [self pushViewControllerWithModel:model]; | |
| 219 | -} | |
| 220 | -/* | |
| 221 | - #pragma mark - Navigation | |
| 222 | - | |
| 223 | - // In a storyboard-based application, you will often want to do a little preparation before navigation | |
| 224 | - - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { | |
| 225 | - // Get the new view controller using [segue destinationViewController]. | |
| 226 | - // Pass the selected object to the new view controller. | |
| 227 | - } | |
| 228 | - */ | |
| 229 | -#pragma mark - Action | |
| 230 | -- (void)pushViewControllerWithModel:(CNHomeModel *)model { | |
| 231 | - NSDictionary *_dic = [model toDictionary]; | |
| 232 | - if ([@"program" isEqualToString:_dic[@"type"]]) { | |
| 233 | - //视频 | |
| 234 | - OldVideoDetailViewController *vc = [[OldVideoDetailViewController alloc] initWithDictionary:_dic]; | |
| 235 | - vc.title = _dic[@"cmsColumnName"]; | |
| 236 | - vc.hidesBottomBarWhenPushed = YES; | |
| 237 | - [self.navigationController pushViewController:vc animated:YES]; | |
| 238 | - | |
| 239 | - } else if ([@"article" isEqualToString:_dic[@"type"]]) { | |
| 240 | - //文章 | |
| 241 | - OldArticleDetailViewController *vc = [[OldArticleDetailViewController alloc] initWithDictionary:_dic]; | |
| 242 | - vc.title = _dic[@"cmsColumnName"]; | |
| 243 | - vc.hidesBottomBarWhenPushed = YES; | |
| 244 | - [self.navigationController pushViewController:vc animated:YES]; | |
| 245 | - | |
| 246 | - } else if ([@"subject" isEqualToString:_dic[@"type"]]) { | |
| 247 | - SCIOSpecialViewController *vc = [[SCIOSpecialViewController alloc] initWithDictionary:_dic]; | |
| 248 | - vc.title = @"国新专题"; | |
| 249 | - vc.hidesBottomBarWhenPushed = YES; | |
| 250 | - [self.navigationController pushViewController:vc animated:YES]; | |
| 251 | - | |
| 252 | - } else if ([@"LK" isEqualToString:_dic[@"type"]]) { | |
| 253 | - OldArticleDetailViewController *vc = [[OldArticleDetailViewController alloc] initWithDictionary:_dic]; | |
| 254 | - vc.title = _dic[@"cmsColumnName"]; | |
| 255 | - vc.hidesBottomBarWhenPushed = YES; | |
| 256 | - [self.navigationController pushViewController:vc animated:YES]; | |
| 257 | - | |
| 258 | - } | |
| 259 | -} | |
| 260 | -#pragma mark - Lazy Laoding | |
| 261 | -- (UITableView *)tableView{ | |
| 262 | - if(!_tableView){ | |
| 263 | - _tableView = [[UITableView alloc] initWithFrame:CGRectMake(0, 0, MainScreenWidth, MainScreenHeight-45-NavBarHeight-TabBarHeight) style:UITableViewStylePlain]; | |
| 264 | - _tableView.delegate = self; | |
| 265 | - _tableView.dataSource = self; | |
| 266 | - _tableView.separatorStyle = UITableViewCellSeparatorStyleNone; | |
| 267 | - _tableView.backgroundColor = HEXCOLOR(0xebebeb); | |
| 268 | - _tableView.estimatedRowHeight = 0; | |
| 269 | - _tableView.estimatedSectionHeaderHeight = 0; | |
| 270 | - _tableView.estimatedSectionFooterHeight = 0; | |
| 271 | - | |
| 272 | - [_tableView registerClass:[CNLiveNewsLeftPicTableViewCell class] forCellReuseIdentifier:newsLeftPicTableViewCell]; | |
| 273 | - [_tableView registerClass:[CNLiveNewsNoPicTableViewCell class] forCellReuseIdentifier:newsNoPicTableViewCell]; | |
| 274 | - [_tableView registerClass:[CNLiveNewsUpPicTableViewCell class] forCellReuseIdentifier:newsUpPicTableViewCell]; | |
| 275 | - [_tableView registerClass:[CNLiveNewsThreePicTableViewCell class] forCellReuseIdentifier:newsThreePicTableViewCell]; | |
| 276 | - | |
| 277 | - // 设置上拉加载 | |
| 278 | - MJRefreshGifHeader *header = [MJRefreshGifHeader headerWithRefreshingTarget:self refreshingAction:@selector(loadUpData)]; | |
| 279 | - NSMutableArray *refreshingImages = [NSMutableArray array]; | |
| 280 | - for (NSUInteger i = 0; i < 4; i++) { | |
| 281 | - UIImage *image = [UIImage imageNamed:[NSString stringWithFormat:@"refresh_animation%lu", (unsigned long)i]]; | |
| 282 | - [refreshingImages addObject:image]; | |
| 283 | - } | |
| 284 | - [header setImages:refreshingImages forState:MJRefreshStateRefreshing]; | |
| 285 | - header.lastUpdatedTimeLabel.hidden = YES; | |
| 286 | - header.stateLabel.hidden = YES; | |
| 287 | - _tableView.mj_header = header; | |
| 288 | - | |
| 289 | - // 设置下拉刷新 | |
| 290 | - MJRefreshAutoNormalFooter *footer = [MJRefreshAutoNormalFooter footerWithRefreshingTarget:self refreshingAction:@selector(loadMoreData)]; | |
| 291 | - [footer setTitle:CustomStr(@"RefreshBackFooterIdleText") forState:MJRefreshStateIdle]; | |
| 292 | - [footer setTitle:CustomStr(@"RefreshBackFooterPullingText") forState:MJRefreshStatePulling]; | |
| 293 | - [footer setTitle:CustomStr(@"RefreshBackFooterRefreshingText") forState:MJRefreshStateRefreshing]; | |
| 294 | - [footer setTitle:CustomStr(@"RefreshBackFooterNoMoreDataText") forState:MJRefreshStateNoMoreData]; | |
| 295 | - _tableView.mj_footer = footer; | |
| 296 | - | |
| 297 | - } | |
| 298 | - return _tableView; | |
| 299 | -} | |
| 300 | - | |
| 301 | -- (NSMutableArray *)data{ | |
| 302 | - if(!_data){ | |
| 303 | - _data = [[NSMutableArray alloc] init]; | |
| 304 | - } | |
| 305 | - return _data; | |
| 306 | -} | |
| 307 | - | |
| 308 | - | |
| 309 | -@end |
CNLiveScioLive/Pages/Home/CNHomeENViewController.m
| ... | ... | @@ -41,6 +41,10 @@ static NSString *newsUpPicTableViewCell = @"CNLiveNewsUpPicTableViewCell"; |
| 41 | 41 | NSLog(@"%@",parameters); |
| 42 | 42 | |
| 43 | 43 | if (![[Reachability reachabilityForInternetConnection] currentReachabilityStatus]) { |
| 44 | + NSData *data = [[NSUserDefaults standardUserDefaults] objectForKey:@"ENHome"]; | |
| 45 | + if (data && self.pageNo == 1) { | |
| 46 | + [self dealDictionaryData:data]; | |
| 47 | + } | |
| 44 | 48 | [AlertViewTool showHUDViewText:CustomStr(@"NetworkiInterruption")]; |
| 45 | 49 | [self.tableView.mj_header endRefreshing]; |
| 46 | 50 | [self.tableView.mj_footer endRefreshing]; |
| ... | ... | @@ -50,59 +54,22 @@ static NSString *newsUpPicTableViewCell = @"CNLiveNewsUpPicTableViewCell"; |
| 50 | 54 | |
| 51 | 55 | [AlertViewTool showHUDView]; |
| 52 | 56 | [XWHTTPTool POST:strUrl params:parameters success:^(id json) { |
| 53 | - [MBProgressHUD hideHUDForView:self.view animated:YES]; | |
| 54 | 57 | [AlertViewTool hideHUDView]; |
| 55 | 58 | |
| 56 | 59 | // 请求成功,解析数据 |
| 57 | 60 | NSDictionary *dic = [NSDictionary dictionaryWithDictionary:json]; |
| 58 | 61 | |
| 59 | 62 | if ([dic[@"errorCode"] isEqualToString:@"0"]) { |
| 60 | - if ([dic[@"programs"] isKindOfClass:[NSArray class]]) { | |
| 61 | - | |
| 62 | - NSArray *lists = dic[@"programs"]; | |
| 63 | - if(self->_pageNo == 1&&lists.count > 0){ | |
| 64 | - [self.data removeAllObjects]; | |
| 65 | - | |
| 66 | - } | |
| 67 | - self->_pageNo++; | |
| 68 | - for (NSDictionary *dics in lists) { | |
| 69 | - [CNHomeModel mj_setupReplacedKeyFromPropertyName:^NSDictionary *{ | |
| 70 | - return @{ @"ID" : @"id" ,@"Description" : @"description" }; | |
| 71 | - }]; | |
| 72 | - NSLog(@"%@",dics); | |
| 73 | - [self.data addObject:[CNHomeModel mj_objectWithKeyValues:dics]]; | |
| 74 | - | |
| 75 | - } | |
| 76 | - | |
| 63 | + NSData *data = [dic mj_JSONData]; | |
| 64 | + if (self.pageNo==1) { | |
| 65 | + [[NSUserDefaults standardUserDefaults] setObject:data forKey:@"ENHome"]; | |
| 77 | 66 | } |
| 78 | - NSDictionary *ttName = dic[@"ttName"]; | |
| 79 | - NSArray *programs = ttName[@"programs"]; | |
| 80 | - | |
| 81 | - if ([programs isKindOfClass:[NSArray class]]) { | |
| 82 | - [self.banner removeAllObjects]; | |
| 83 | - for (NSDictionary *dics in programs) { | |
| 84 | - [CNHomeModel mj_setupReplacedKeyFromPropertyName:^NSDictionary *{ | |
| 85 | - return @{ @"ID" : @"id" ,@"Description" : @"description" }; | |
| 86 | - }]; | |
| 87 | - | |
| 88 | - NSLog(@"%@",dics); | |
| 89 | - [self.banner addObject:[CNHomeModel mj_objectWithKeyValues:dics]]; | |
| 90 | - } | |
| 91 | - | |
| 92 | - NSMutableArray *titles = [NSMutableArray array]; | |
| 93 | - NSMutableArray *imagesURLStrings = [NSMutableArray array]; | |
| 94 | - for(int i = 0; i < self.banner.count; i++){ | |
| 95 | - CNHomeModel *model = self.banner[i]; | |
| 96 | - [titles addObject:model.title]; | |
| 97 | - [imagesURLStrings addObject:model.img]; | |
| 98 | - | |
| 99 | - } | |
| 100 | - self.cycleScrollView.titlesGroup = titles; | |
| 101 | - self.cycleScrollView.imageURLStringsGroup = imagesURLStrings; | |
| 102 | - | |
| 103 | - } | |
| 104 | - | |
| 67 | + [self dealDictionaryData:data]; | |
| 105 | 68 | } else { |
| 69 | + NSData *data = [[NSUserDefaults standardUserDefaults] objectForKey:@"ENHome"]; | |
| 70 | + if (data && self.pageNo == 1) { | |
| 71 | + [self dealDictionaryData:data]; | |
| 72 | + } | |
| 106 | 73 | [AlertViewTool showHUDViewText:dic[@"errorMessage"]]; |
| 107 | 74 | |
| 108 | 75 | } |
| ... | ... | @@ -115,18 +82,81 @@ static NSString *newsUpPicTableViewCell = @"CNLiveNewsUpPicTableViewCell"; |
| 115 | 82 | [self.tableView.mj_footer endRefreshing]; |
| 116 | 83 | |
| 117 | 84 | } |
| 118 | - [self.tableView reloadData]; | |
| 85 | + | |
| 119 | 86 | self->_isRefreshing = NO; |
| 120 | 87 | |
| 121 | 88 | |
| 122 | 89 | } failure:^(NSError *error) { |
| 123 | 90 | [AlertViewTool hideHUDView]; |
| 124 | 91 | self->_isRefreshing = NO; |
| 92 | + [self.tableView.mj_footer endRefreshing]; | |
| 93 | + [self.tableView.mj_header endRefreshing]; | |
| 125 | 94 | [AlertViewTool showHUDViewText:CustomStr(@"ServerBusy")]; |
| 95 | + NSData *data = [[NSUserDefaults standardUserDefaults] objectForKey:@"ENHome"]; | |
| 96 | + if (data && self.pageNo == 1) { | |
| 97 | + [self dealDictionaryData:data]; | |
| 98 | + } | |
| 99 | + | |
| 126 | 100 | |
| 127 | 101 | }]; |
| 128 | 102 | } |
| 103 | +-(void)dealDictionaryData:(NSData *)data | |
| 104 | +{ | |
| 105 | + NSDictionary *dic = [data mj_JSONObject]; | |
| 106 | + if ([dic[@"programs"] isKindOfClass:[NSArray class]]) { | |
| 107 | + | |
| 108 | + NSArray *lists = dic[@"programs"]; | |
| 109 | + if(self->_pageNo == 1&&lists.count > 0){ | |
| 110 | + [self.data removeAllObjects]; | |
| 111 | + | |
| 112 | + } | |
| 113 | + self->_pageNo++; | |
| 114 | + for (NSDictionary *dics in lists) { | |
| 115 | + [CNHomeModel mj_setupReplacedKeyFromPropertyName:^NSDictionary *{ | |
| 116 | + return @{ @"ID" : @"id" ,@"Description" : @"description" }; | |
| 117 | + }]; | |
| 118 | + NSLog(@"%@",dics); | |
| 119 | + [self.data addObject:[CNHomeModel mj_objectWithKeyValues:dics]]; | |
| 120 | + | |
| 121 | + } | |
| 122 | + | |
| 123 | + } | |
| 124 | + NSDictionary *ttName = dic[@"ttName"]; | |
| 125 | + NSArray *programs = ttName[@"programs"]; | |
| 126 | + | |
| 127 | + if ([programs isKindOfClass:[NSArray class]]) { | |
| 128 | + [self.banner removeAllObjects]; | |
| 129 | + for (NSDictionary *dics in programs) { | |
| 130 | + [CNHomeModel mj_setupReplacedKeyFromPropertyName:^NSDictionary *{ | |
| 131 | + return @{ @"ID" : @"id" ,@"Description" : @"description" }; | |
| 132 | + }]; | |
| 133 | + | |
| 134 | + NSLog(@"%@",dics); | |
| 135 | + [self.banner addObject:[CNHomeModel mj_objectWithKeyValues:dics]]; | |
| 136 | + } | |
| 137 | + | |
| 138 | + NSMutableArray *titles = [NSMutableArray array]; | |
| 139 | + NSMutableArray *imagesURLStrings = [NSMutableArray array]; | |
| 140 | + for(int i = 0; i < self.banner.count; i++){ | |
| 141 | + CNHomeModel *model = self.banner[i]; | |
| 142 | + [titles addObject:model.title]; | |
| 143 | + [imagesURLStrings addObject:model.img]; | |
| 129 | 144 | |
| 145 | + } | |
| 146 | + if (titles.count!=0) { | |
| 147 | + self.tableView.tableHeaderView = self.cycleScrollView; | |
| 148 | + self.cycleScrollView.titlesGroup = titles; | |
| 149 | + self.cycleScrollView.imageURLStringsGroup = imagesURLStrings; | |
| 150 | + } | |
| 151 | + | |
| 152 | + }else | |
| 153 | + { | |
| 154 | + if (self.pageNo == 2) { | |
| 155 | + self.tableView.tableHeaderView = nil; | |
| 156 | + } | |
| 157 | + } | |
| 158 | + [self.tableView reloadData]; | |
| 159 | +} | |
| 130 | 160 | - (void)loadUpData{ |
| 131 | 161 | _pageNo = 1; |
| 132 | 162 | if(!_isRefreshing){ |
| ... | ... | @@ -151,7 +181,6 @@ static NSString *newsUpPicTableViewCell = @"CNLiveNewsUpPicTableViewCell"; |
| 151 | 181 | _isRefreshing = NO; |
| 152 | 182 | |
| 153 | 183 | [self.view addSubview:self.tableView]; |
| 154 | - self.tableView.tableHeaderView = self.cycleScrollView; | |
| 155 | 184 | |
| 156 | 185 | [self loadData]; |
| 157 | 186 | |
| ... | ... | @@ -227,7 +256,7 @@ static NSString *newsUpPicTableViewCell = @"CNLiveNewsUpPicTableViewCell"; |
| 227 | 256 | |
| 228 | 257 | } |
| 229 | 258 | else{ |
| 230 | - if(model.img){ | |
| 259 | + if(model.img&&![model.img isEqualToString:@""]){ | |
| 231 | 260 | //一张图 左边 |
| 232 | 261 | CNLiveNewsLeftPicTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:newsLeftPicTableViewCell]; |
| 233 | 262 | if (!cell) { | ... | ... |
CNLiveScioLive/Pages/Home/CNHomeModel.h
| ... | ... | @@ -15,6 +15,7 @@ |
| 15 | 15 | @property (nonatomic, copy) NSString *subTitle; |
| 16 | 16 | @property (nonatomic, copy) NSString *titleColor; |
| 17 | 17 | @property (nonatomic, copy) NSString *tagsColor; |
| 18 | +@property (nonatomic, copy) NSString *textColor; | |
| 18 | 19 | |
| 19 | 20 | |
| 20 | 21 | @property (nonatomic, copy) NSString *ID; | ... | ... |
CNLiveScioLive/Pages/Home/CNHomeViewController.m
| ... | ... | @@ -14,8 +14,6 @@ |
| 14 | 14 | #import "CNLiveHeraldedNewsViewController.h" |
| 15 | 15 | #import "CNLiveReporterAskedViewController.h" |
| 16 | 16 | |
| 17 | -#import "CNHomeBaseViewController.h" | |
| 18 | - | |
| 19 | 17 | @interface CNHomeViewController () |
| 20 | 18 | @property (nonatomic, strong) NSMutableArray *data; |
| 21 | 19 | @property (nonatomic, strong) UIButton *reFreshBtn; |
| ... | ... | @@ -29,97 +27,52 @@ |
| 29 | 27 | |
| 30 | 28 | NSDictionary *parameters = @{@"params":@"{\"plat\":\"i\",\"version\":\"5.0\",\"appid\":\"gxb\",\"pageUUID\":\"852cde69-ecd8-11e6-b52e-c7d8a7a18cc4\",\"pageType\":\"channelList\"}"}; |
| 31 | 29 | if (![[Reachability reachabilityForInternetConnection] currentReachabilityStatus]) { |
| 32 | - [AlertViewTool showHUDViewText:CustomStr(@"NetworkiInterruption")]; | |
| 33 | - if (!_reFreshBtn &&self.data.count == 0) { | |
| 34 | - [self.view addSubview:self.reFreshBtn]; | |
| 30 | + NSData *data = [[NSUserDefaults standardUserDefaults] objectForKey:@"homeList"]; | |
| 31 | + if (data) { | |
| 32 | + [self dealDictionaryData:data]; | |
| 35 | 33 | } |
| 34 | + [AlertViewTool showHUDViewText:CustomStr(@"NetworkiInterruption")]; | |
| 35 | +// if (!_reFreshBtn &&self.data.count == 0) { | |
| 36 | +// [self.view addSubview:self.reFreshBtn]; | |
| 37 | +// } | |
| 36 | 38 | return; |
| 37 | 39 | } |
| 38 | - [AlertViewTool showHUDView]; | |
| 40 | +// [AlertViewTool showHUDView]; | |
| 39 | 41 | |
| 40 | 42 | [XWHTTPTool POST:strUrl params:parameters success:^(id json) { |
| 41 | 43 | |
| 42 | - if (self->_reFreshBtn) { | |
| 43 | - [self->_reFreshBtn removeFromSuperview]; | |
| 44 | - } | |
| 45 | - [AlertViewTool hideHUDView]; | |
| 44 | +// if (self->_reFreshBtn) { | |
| 45 | +// [self->_reFreshBtn removeFromSuperview]; | |
| 46 | +// } | |
| 47 | +// [AlertViewTool hideHUDView]; | |
| 46 | 48 | |
| 47 | 49 | // 请求成功,解析数据 |
| 48 | 50 | NSDictionary *dic = [NSDictionary dictionaryWithDictionary:json]; |
| 49 | 51 | |
| 50 | 52 | if ([dic[@"errorCode"] isEqualToString:@"0"]) { |
| 51 | - | |
| 52 | - NSDictionary *ininav = dic[@"ininav"]; | |
| 53 | - NSArray *ininavArray = ininav[@"programs"]; | |
| 54 | - | |
| 55 | - if ([ininavArray isKindOfClass:[NSArray class]]) { | |
| 56 | - for (NSDictionary *dics in ininavArray) { | |
| 57 | - [CNHomeModel mj_setupReplacedKeyFromPropertyName:^NSDictionary *{ | |
| 58 | - return @{ @"ID" : @"id" ,@"Description" : @"description" }; | |
| 59 | - }]; | |
| 60 | - | |
| 61 | - NSLog(@"%@",dics); | |
| 62 | - [self.data addObject:[CNHomeModel mj_objectWithKeyValues:dics]]; | |
| 63 | - | |
| 64 | - } | |
| 65 | - | |
| 66 | - } | |
| 67 | - | |
| 68 | - NSMutableArray *controllers = [NSMutableArray array]; | |
| 69 | - NSMutableArray *titles = [NSMutableArray array]; | |
| 70 | - | |
| 71 | - for(int i = 0; i < self.data.count; i++){ | |
| 72 | - CNHomeModel *model = self.data[i]; | |
| 73 | - [titles addObject:model.title]; | |
| 74 | - if ([model.cid isEqualToString:@"wz/toutiao/"]) { | |
| 75 | - //外宣要闻 | |
| 76 | - CNLiveHeraldedNewsViewController *vc = [[CNLiveHeraldedNewsViewController alloc] init]; | |
| 77 | - vc.cid = model.cid; | |
| 78 | - [controllers addObject:vc]; | |
| 79 | - | |
| 80 | - }else if ([model.cid isEqualToString:@"spzl/djzw/"]) { | |
| 81 | - //答记者问 | |
| 82 | - CNLiveReporterAskedViewController *vc = [[CNLiveReporterAskedViewController alloc] init]; | |
| 83 | - vc.cid = model.cid; | |
| 84 | - [controllers addObject:vc]; | |
| 85 | - | |
| 86 | - }else{ | |
| 87 | - //基本 | |
| 88 | - CNHomeBaseViewController *vc = [[CNHomeBaseViewController alloc] init]; | |
| 89 | - vc.cid = model.cid; | |
| 90 | - [controllers addObject:vc]; | |
| 91 | - | |
| 92 | - } | |
| 93 | - | |
| 94 | - } | |
| 95 | - if(controllers.count > 0){ | |
| 96 | - self.segmentControl.titles = titles; | |
| 97 | - if (HOMETITLECOLORSTR) { | |
| 98 | - self.segmentControl.titleNormalColor = segementColor_title_color; | |
| 99 | - self.segmentControl.titleSelectColor = [UIColor colorWithHexString:HOMETITLECOLORSTR]; | |
| 100 | - [self.segmentControl setBottomViewColor:[UIColor colorWithHexString:HOMETITLECOLORSTR]]; | |
| 101 | - }else{ | |
| 102 | - if (ininavArray[0][@"textColor"]&&![ininavArray[0][@"textColor"] isEqualToString:@""]) { | |
| 103 | - | |
| 104 | - self.segmentControl.titleSelectColor = [UIColor colorWithHexString:ininavArray[0][@"textColor"]]; | |
| 105 | - [self.segmentControl setBottomViewColor:[UIColor colorWithHexString:ininavArray[0][@"textColor"]]]; | |
| 106 | - } | |
| 107 | - } | |
| 108 | - self.segmentControl.viewControllers = controllers; | |
| 109 | - } | |
| 110 | - NSDictionary *dic = @{@"titles":titles}; | |
| 111 | - [[NSNotificationCenter defaultCenter] postNotificationName:@"CNHomeRightViewController" object:nil userInfo:dic]; | |
| 53 | + NSData *data = [dic mj_JSONData]; | |
| 54 | + [[NSUserDefaults standardUserDefaults] setObject:data forKey:@"homeList"]; | |
| 55 | + [self dealDictionaryData:data]; | |
| 112 | 56 | |
| 113 | 57 | } else { |
| 58 | + NSData *data = [[NSUserDefaults standardUserDefaults] objectForKey:@"homeList"]; | |
| 59 | + if (data) { | |
| 60 | + [self dealDictionaryData:data]; | |
| 61 | + } | |
| 114 | 62 | [AlertViewTool hideHUDView]; |
| 115 | 63 | [AlertViewTool showHUDViewText:dic[@"errorMessage"]]; |
| 116 | - if (!self->_reFreshBtn &&self.data.count == 0) { | |
| 117 | - [self.view addSubview:self.reFreshBtn]; | |
| 118 | - } | |
| 64 | +// if (!self->_reFreshBtn &&self.data.count == 0) { | |
| 65 | +// [self.view addSubview:self.reFreshBtn]; | |
| 66 | +// } | |
| 119 | 67 | } |
| 120 | 68 | |
| 121 | 69 | |
| 122 | 70 | } failure:^(NSError *error) { |
| 71 | + NSData *data = [[NSUserDefaults standardUserDefaults] objectForKey:@"homeList"]; | |
| 72 | + if (data) { | |
| 73 | + [self dealDictionaryData:data]; | |
| 74 | + } | |
| 75 | + | |
| 123 | 76 | [AlertViewTool hideHUDView]; |
| 124 | 77 | [AlertViewTool showHUDViewText:CustomStr(@"ServerBusy")]; |
| 125 | 78 | if (!self->_reFreshBtn &&self.data.count == 0) { |
| ... | ... | @@ -127,6 +80,59 @@ |
| 127 | 80 | } |
| 128 | 81 | }]; |
| 129 | 82 | } |
| 83 | +-(void)dealDictionaryData:(NSData *)data | |
| 84 | +{ | |
| 85 | + NSDictionary *dic = [data mj_JSONObject]; | |
| 86 | + NSDictionary *ininav = dic[@"ininav"]; | |
| 87 | + NSArray *ininavArray = ininav[@"programs"]; | |
| 88 | + | |
| 89 | + if ([ininavArray isKindOfClass:[NSArray class]]) { | |
| 90 | + for (NSDictionary *dics in ininavArray) { | |
| 91 | + [CNHomeModel mj_setupReplacedKeyFromPropertyName:^NSDictionary *{ | |
| 92 | + return @{ @"ID" : @"id" ,@"Description" : @"description" }; | |
| 93 | + }]; | |
| 94 | + | |
| 95 | + NSLog(@"%@",dics); | |
| 96 | + [self.data addObject:[CNHomeModel mj_objectWithKeyValues:dics]]; | |
| 97 | + | |
| 98 | + } | |
| 99 | + | |
| 100 | + } | |
| 101 | + | |
| 102 | + NSMutableArray *controllers = [NSMutableArray array]; | |
| 103 | + NSMutableArray *titles = [NSMutableArray array]; | |
| 104 | + NSMutableArray *colors = [NSMutableArray array]; | |
| 105 | + for(int i = 0; i < self.data.count; i++){ | |
| 106 | + CNHomeModel *model = self.data[i]; | |
| 107 | + [titles addObject:model.title]; | |
| 108 | + if (!model.textColor) { | |
| 109 | + model.textColor = @""; | |
| 110 | + } | |
| 111 | + [colors addObject:model.textColor]; | |
| 112 | + if ([model.cid isEqualToString:@"spzl/djzw/"]) { | |
| 113 | + //答记者问 | |
| 114 | + CNLiveReporterAskedViewController *vc = [[CNLiveReporterAskedViewController alloc] init]; | |
| 115 | + vc.cid = model.cid; | |
| 116 | + [controllers addObject:vc]; | |
| 117 | + | |
| 118 | + }else{ | |
| 119 | + //其他 | |
| 120 | + CNLiveHeraldedNewsViewController *vc = [[CNLiveHeraldedNewsViewController alloc] init]; | |
| 121 | + vc.cid = model.cid; | |
| 122 | + [controllers addObject:vc]; | |
| 123 | + } | |
| 124 | + | |
| 125 | + } | |
| 126 | + if(controllers.count > 0){ | |
| 127 | + NSMutableArray *textArray = [NSMutableArray array]; | |
| 128 | + [textArray addObject:titles]; | |
| 129 | + [textArray addObject:colors]; | |
| 130 | + self.segmentControl.titles = textArray; | |
| 131 | + self.segmentControl.viewControllers = controllers; | |
| 132 | + } | |
| 133 | + NSDictionary *dic1 = @{@"titles":titles}; | |
| 134 | + [[NSNotificationCenter defaultCenter] postNotificationName:@"CNHomeRightViewController" object:nil userInfo:dic1]; | |
| 135 | +} | |
| 130 | 136 | - (void)viewWillAppear:(BOOL)animated { |
| 131 | 137 | [super viewWillAppear:animated]; |
| 132 | 138 | [self.navigationController setNavigationBarHidden:NO]; |
| ... | ... | @@ -149,7 +155,11 @@ |
| 149 | 155 | headerButton.layer.masksToBounds = true; |
| 150 | 156 | [headerButton setImage:[UIImage imageNamed:@"cnlive_icon"] forState:UIControlStateNormal]; |
| 151 | 157 | [headerButton setTitle:@"国新" forState:UIControlStateNormal]; |
| 158 | + if (HOMETITLECOLORSTR) { | |
| 159 | + [headerButton setTitleColor:[UIColor colorWithHexString:HOMETITLECOLORSTR] forState:UIControlStateNormal]; | |
| 160 | + }else{ | |
| 152 | 161 | [headerButton setTitleColor:Color_Blue forState:UIControlStateNormal]; |
| 162 | + } | |
| 153 | 163 | headerButton.titleLabel.font = [UIFont systemFontOfSize:15]; |
| 154 | 164 | |
| 155 | 165 | headerButton.contentHorizontalAlignment = UIControlContentHorizontalAlignmentLeft;//居左显示 | ... | ... |
CNLiveScioLive/Pages/Home/外宣要闻/Controller/CNLiveHeraldedNewsViewController.m
| ... | ... | @@ -41,6 +41,10 @@ static NSString *newsUpPicTableViewCell = @"CNLiveNewsUpPicTableViewCell"; |
| 41 | 41 | NSDictionary *parameters = @{@"params":categoryId}; |
| 42 | 42 | |
| 43 | 43 | if (![[Reachability reachabilityForInternetConnection] currentReachabilityStatus]) { |
| 44 | + NSData *data = [[NSUserDefaults standardUserDefaults] objectForKey:self.cid]; | |
| 45 | + if (data && self.pageNo == 1) { | |
| 46 | + [self dealDictionaryData:data]; | |
| 47 | + } | |
| 44 | 48 | [AlertViewTool showHUDViewText:CustomStr(@"NetworkiInterruption")]; |
| 45 | 49 | [self.tableView.mj_header endRefreshing]; |
| 46 | 50 | [self.tableView.mj_footer endRefreshing]; |
| ... | ... | @@ -48,62 +52,27 @@ static NSString *newsUpPicTableViewCell = @"CNLiveNewsUpPicTableViewCell"; |
| 48 | 52 | return; |
| 49 | 53 | } |
| 50 | 54 | |
| 51 | - [AlertViewTool showHUDView]; | |
| 55 | +// [AlertViewTool showHUDView]; | |
| 52 | 56 | |
| 53 | 57 | [XWHTTPTool POST:strUrl params:parameters success:^(id json) { |
| 54 | - [AlertViewTool hideHUDView]; | |
| 58 | +// [AlertViewTool hideHUDView]; | |
| 55 | 59 | |
| 56 | 60 | // 请求成功,解析数据 |
| 57 | 61 | NSDictionary *dic = [NSDictionary dictionaryWithDictionary:json]; |
| 58 | 62 | |
| 59 | 63 | if ([dic[@"errorCode"] isEqualToString:@"0"]) { |
| 60 | - if ([dic[@"programs"] isKindOfClass:[NSArray class]]) { | |
| 61 | - NSArray *lists = dic[@"programs"]; | |
| 62 | - if(self->_pageNo == 1&&lists.count > 0){ | |
| 63 | - [self.data removeAllObjects]; | |
| 64 | - | |
| 65 | - } | |
| 66 | - self->_pageNo++; | |
| 67 | - | |
| 68 | - for (NSDictionary *dics in lists) { | |
| 69 | - [CNHomeModel mj_setupReplacedKeyFromPropertyName:^NSDictionary *{ | |
| 70 | - return @{ @"ID" : @"id" ,@"Description" : @"description" }; | |
| 71 | - }]; | |
| 72 | - NSLog(@"%@",dics); | |
| 73 | - [self.data addObject:[CNHomeModel mj_objectWithKeyValues:dics]]; | |
| 74 | - | |
| 75 | - } | |
| 76 | - | |
| 77 | - } | |
| 78 | - NSDictionary *ttName = dic[@"ttName"]; | |
| 79 | - NSArray *programs = ttName[@"programs"]; | |
| 80 | - | |
| 81 | - if ([programs isKindOfClass:[NSArray class]]) { | |
| 82 | - [self.banner removeAllObjects]; | |
| 83 | - for (NSDictionary *dics in programs) { | |
| 84 | - [CNHomeModel mj_setupReplacedKeyFromPropertyName:^NSDictionary *{ | |
| 85 | - return @{ @"ID" : @"id" ,@"Description" : @"description" }; | |
| 86 | - }]; | |
| 87 | - | |
| 88 | - NSLog(@"%@",dics); | |
| 89 | - [self.banner addObject:[CNHomeModel mj_objectWithKeyValues:dics]]; | |
| 90 | - } | |
| 91 | - | |
| 92 | - NSMutableArray *titles = [NSMutableArray array]; | |
| 93 | - NSMutableArray *imagesURLStrings = [NSMutableArray array]; | |
| 94 | - for(int i = 0; i < self.banner.count; i++){ | |
| 95 | - CNHomeModel *model = self.banner[i]; | |
| 96 | - [titles addObject:model.title]; | |
| 97 | - [imagesURLStrings addObject:model.img]; | |
| 98 | - | |
| 99 | - } | |
| 100 | - self.cycleScrollView.titlesGroup = titles; | |
| 101 | - self.cycleScrollView.imageURLStringsGroup = imagesURLStrings; | |
| 64 | + NSData *data = [dic mj_JSONData]; | |
| 65 | + if (self -> _pageNo == 1) { | |
| 102 | 66 | |
| 67 | + [[NSUserDefaults standardUserDefaults] setObject:data forKey:self.cid]; | |
| 103 | 68 | } |
| 69 | + [self dealDictionaryData:data]; | |
| 104 | 70 | } else { |
| 105 | 71 | [AlertViewTool showHUDViewText:dic[@"errorMessage"]]; |
| 106 | - | |
| 72 | + NSData *data = [[NSUserDefaults standardUserDefaults] objectForKey:self.cid]; | |
| 73 | + if (data &&self.pageNo == 1) { | |
| 74 | + [self dealDictionaryData:data]; | |
| 75 | + } | |
| 107 | 76 | } |
| 108 | 77 | [self.tableView.mj_header endRefreshing]; |
| 109 | 78 | |
| ... | ... | @@ -114,18 +83,85 @@ static NSString *newsUpPicTableViewCell = @"CNLiveNewsUpPicTableViewCell"; |
| 114 | 83 | [self.tableView.mj_footer endRefreshing]; |
| 115 | 84 | |
| 116 | 85 | } |
| 117 | - [self.tableView reloadData]; | |
| 86 | + | |
| 118 | 87 | self->_isRefreshing = NO; |
| 119 | 88 | |
| 120 | 89 | |
| 121 | 90 | } failure:^(NSError *error) { |
| 91 | + [AlertViewTool hideHUDView]; | |
| 92 | + [self.tableView.mj_header endRefreshing]; | |
| 93 | + [self.tableView.mj_footer endRefreshing]; | |
| 122 | 94 | [AlertViewTool showHUDViewText:CustomStr(@"ServerBusy")]; |
| 123 | 95 | self->_isRefreshing = NO; |
| 124 | - [AlertViewTool hideHUDView]; | |
| 96 | + | |
| 97 | + NSData *data = [[NSUserDefaults standardUserDefaults] objectForKey:self.cid]; | |
| 98 | + if (data &&self.pageNo == 1) { | |
| 99 | + [self dealDictionaryData:data]; | |
| 100 | + } | |
| 101 | + | |
| 125 | 102 | |
| 126 | 103 | }]; |
| 127 | 104 | } |
| 128 | 105 | |
| 106 | +-(void)dealDictionaryData:(NSData *)data | |
| 107 | +{ | |
| 108 | + NSDictionary *dic = [data mj_JSONObject]; | |
| 109 | + if ([dic[@"programs"] isKindOfClass:[NSArray class]]) { | |
| 110 | + NSArray *lists = dic[@"programs"]; | |
| 111 | + if(self->_pageNo == 1&&lists.count > 0){ | |
| 112 | + [self.data removeAllObjects]; | |
| 113 | + | |
| 114 | + } | |
| 115 | + | |
| 116 | + | |
| 117 | + self->_pageNo++; | |
| 118 | + | |
| 119 | + for (NSDictionary *dics in lists) { | |
| 120 | + [CNHomeModel mj_setupReplacedKeyFromPropertyName:^NSDictionary *{ | |
| 121 | + return @{ @"ID" : @"id" ,@"Description" : @"description" }; | |
| 122 | + }]; | |
| 123 | + NSLog(@"%@",dics); | |
| 124 | + [self.data addObject:[CNHomeModel mj_objectWithKeyValues:dics]]; | |
| 125 | + | |
| 126 | + } | |
| 127 | + | |
| 128 | + } | |
| 129 | + NSDictionary *ttName = dic[@"ttName"]; | |
| 130 | + NSArray *programs = ttName[@"programs"]; | |
| 131 | + | |
| 132 | + if ([programs isKindOfClass:[NSArray class]]) { | |
| 133 | + [self.banner removeAllObjects]; | |
| 134 | + for (NSDictionary *dics in programs) { | |
| 135 | + [CNHomeModel mj_setupReplacedKeyFromPropertyName:^NSDictionary *{ | |
| 136 | + return @{ @"ID" : @"id" ,@"Description" : @"description" }; | |
| 137 | + }]; | |
| 138 | + | |
| 139 | + NSLog(@"%@",dics); | |
| 140 | + [self.banner addObject:[CNHomeModel mj_objectWithKeyValues:dics]]; | |
| 141 | + } | |
| 142 | + | |
| 143 | + NSMutableArray *titles = [NSMutableArray array]; | |
| 144 | + NSMutableArray *imagesURLStrings = [NSMutableArray array]; | |
| 145 | + for(int i = 0; i < self.banner.count; i++){ | |
| 146 | + CNHomeModel *model = self.banner[i]; | |
| 147 | + [titles addObject:model.title]; | |
| 148 | + [imagesURLStrings addObject:model.img]; | |
| 149 | + | |
| 150 | + } | |
| 151 | + if (titles.count!=0) { | |
| 152 | + self.tableView.tableHeaderView = self.cycleScrollView; | |
| 153 | + self.cycleScrollView.titlesGroup = titles; | |
| 154 | + self.cycleScrollView.imageURLStringsGroup = imagesURLStrings; | |
| 155 | + } | |
| 156 | + }else | |
| 157 | + { | |
| 158 | + if (self.pageNo == 2) { | |
| 159 | + self.tableView.tableHeaderView = nil; | |
| 160 | + } | |
| 161 | + } | |
| 162 | + [self.tableView reloadData]; | |
| 163 | +} | |
| 164 | + | |
| 129 | 165 | - (void)loadUpData{ |
| 130 | 166 | _pageNo = 1; |
| 131 | 167 | if(!_isRefreshing){ |
| ... | ... | @@ -148,7 +184,6 @@ static NSString *newsUpPicTableViewCell = @"CNLiveNewsUpPicTableViewCell"; |
| 148 | 184 | |
| 149 | 185 | [self loadData]; |
| 150 | 186 | [self.view addSubview:self.tableView]; |
| 151 | - self.tableView.tableHeaderView = self.cycleScrollView; | |
| 152 | 187 | |
| 153 | 188 | // Do any additional setup after loading the view. |
| 154 | 189 | } |
| ... | ... | @@ -224,7 +259,7 @@ static NSString *newsUpPicTableViewCell = @"CNLiveNewsUpPicTableViewCell"; |
| 224 | 259 | |
| 225 | 260 | }else{ |
| 226 | 261 | |
| 227 | - if(model.img){ | |
| 262 | + if(model.img&&![model.img isEqualToString:@""]){ | |
| 228 | 263 | CNLiveNewsLeftPicTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:newsLeftPicTableViewCell]; |
| 229 | 264 | if (!cell) { |
| 230 | 265 | cell = [[CNLiveNewsLeftPicTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:newsLeftPicTableViewCell]; | ... | ... |
CNLiveScioLive/Pages/Home/外宣要闻/View/CNLiveHeraldedNewsTableViewCell.m
| ... | ... | @@ -159,8 +159,8 @@ |
| 159 | 159 | }]; |
| 160 | 160 | |
| 161 | 161 | [_playImage mas_makeConstraints:^(MASConstraintMaker *make) { |
| 162 | - make.centerX.offset(self->_picImage.centerX); | |
| 163 | - make.centerY.offset(self->_picImage.centerY-40); | |
| 162 | + make.left.equalTo(self->_picImage).offset(5); | |
| 163 | + make.bottom.equalTo(self->_picImage).offset(-5); | |
| 164 | 164 | make.width.offset(50); |
| 165 | 165 | make.height.offset(50); |
| 166 | 166 | ... | ... |
CNLiveScioLive/Pages/Home/外宣要闻/View/CNLiveNewsLeftPicTableViewCell.m
| ... | ... | @@ -80,17 +80,13 @@ |
| 80 | 80 | _titleLabel.text = model.title; |
| 81 | 81 | _timeLabel.text = [model.createDate componentsSeparatedByString:@" "][0]; |
| 82 | 82 | [_picImage sd_setImageWithURL:[NSURL URLWithString:model.img] placeholderImage:[UIImage imageNamed:@"placeholder"]]; |
| 83 | - if (model.titleColor) { | |
| 83 | + if (model.titleColor &&![model.titleColor isEqualToString:@""]) { | |
| 84 | 84 | _titleLabel.textColor = [UIColor colorWithHexString:model.titleColor]; |
| 85 | 85 | } |
| 86 | - if (HOMETITLECOLORSTR) { | |
| 87 | - _projectLabel.backgroundColor = [UIColor colorWithHexString:HOMETITLECOLORSTR]; | |
| 88 | - }else{ | |
| 89 | - if (model.tagsColor) { | |
| 86 | + if (model.tagsColor&&![model.tagsColor isEqualToString:@""]) { | |
| 90 | 87 | |
| 91 | 88 | _projectLabel.backgroundColor = [UIColor colorWithHexString:model.tagsColor]; |
| 92 | 89 | } |
| 93 | - } | |
| 94 | 90 | //专题 |
| 95 | 91 | if(model.tags && ![model.tags isEqualToString:@""]){ |
| 96 | 92 | _projectLabel.text = model.tags; |
| ... | ... | @@ -137,8 +133,8 @@ |
| 137 | 133 | |
| 138 | 134 | }]; |
| 139 | 135 | [_playImage mas_remakeConstraints:^(MASConstraintMaker *make) { |
| 140 | - make.centerX.equalTo(self->_picImage.mas_centerX); | |
| 141 | - make.centerY.equalTo(self->_picImage.mas_centerY); | |
| 136 | + make.left.equalTo(self->_picImage).offset(5); | |
| 137 | + make.bottom.equalTo(self->_picImage).offset(-5); | |
| 142 | 138 | make.width.height.offset(30*MainScale); |
| 143 | 139 | |
| 144 | 140 | }]; | ... | ... |
CNLiveScioLive/Pages/Home/外宣要闻/View/CNLiveNewsNoPicTableViewCell.m
| ... | ... | @@ -63,17 +63,13 @@ |
| 63 | 63 | - (void)setModel:(CNHomeModel *)model{ |
| 64 | 64 | _model = model; |
| 65 | 65 | _titleLabel.text = model.title; |
| 66 | - if (model.titleColor) { | |
| 66 | + if (model.titleColor &&![model.titleColor isEqualToString:@""]) { | |
| 67 | 67 | _titleLabel.textColor = [UIColor colorWithHexString:model.titleColor]; |
| 68 | 68 | } |
| 69 | - | |
| 70 | - if (HOMETITLECOLORSTR) { | |
| 71 | - _projectLabel.backgroundColor = [UIColor colorWithHexString:HOMETITLECOLORSTR]; | |
| 72 | - }else{ | |
| 73 | - if (model.tagsColor) { | |
| 69 | + if (model.tagsColor&&![model.tagsColor isEqualToString:@""]) { | |
| 70 | + | |
| 74 | 71 | _projectLabel.backgroundColor = [UIColor colorWithHexString:model.tagsColor]; |
| 75 | 72 | } |
| 76 | - } | |
| 77 | 73 | _timeLabel.text = [model.createDate componentsSeparatedByString:@" "][0]; |
| 78 | 74 | |
| 79 | 75 | if(model.tags && ![model.tags isEqualToString:@""]){ | ... | ... |
CNLiveScioLive/Pages/Home/外宣要闻/View/CNLiveNewsThreePicTableViewCell.m
| ... | ... | @@ -94,16 +94,13 @@ |
| 94 | 94 | _projectLabel.text = model.subjecttag; |
| 95 | 95 | |
| 96 | 96 | } |
| 97 | - if (model.titleColor) { | |
| 97 | + if (model.titleColor &&![model.titleColor isEqualToString:@""]) { | |
| 98 | 98 | _titleLabel.textColor = [UIColor colorWithHexString:model.titleColor]; |
| 99 | 99 | } |
| 100 | - if (HOMETITLECOLORSTR) { | |
| 101 | - _projectLabel.backgroundColor = [UIColor colorWithHexString:HOMETITLECOLORSTR]; | |
| 102 | - }else{ | |
| 103 | - if (model.tagsColor) { | |
| 100 | + if (model.tagsColor&&![model.tagsColor isEqualToString:@""]) { | |
| 101 | + | |
| 104 | 102 | _projectLabel.backgroundColor = [UIColor colorWithHexString:model.tagsColor]; |
| 105 | 103 | } |
| 106 | - } | |
| 107 | 104 | [_leftImage sd_setImageWithURL:[NSURL URLWithString:model.img] placeholderImage:[UIImage imageNamed:@"placeholder"]]; |
| 108 | 105 | [_picImage sd_setImageWithURL:[NSURL URLWithString:model.imgSmall] placeholderImage:[UIImage imageNamed:@"placeholder"]]; |
| 109 | 106 | [_rightImage sd_setImageWithURL:[NSURL URLWithString:model.imgBig] placeholderImage:[UIImage imageNamed:@"placeholder"]]; | ... | ... |
CNLiveScioLive/Pages/Home/外宣要闻/View/CNLiveNewsUpPicTableViewCell.m
| ... | ... | @@ -123,8 +123,8 @@ |
| 123 | 123 | if ([_model.type isEqualToString:@"program"]) { |
| 124 | 124 | _playImage.hidden = NO; |
| 125 | 125 | [_playImage mas_updateConstraints:^(MASConstraintMaker *make) { |
| 126 | - make.left.equalTo(self->_backgroundImage.mas_left).with.offset((MainScreenWidth-20-50)/2); | |
| 127 | - make.top.equalTo(self->_picImage.mas_top).with.offset((200*MainHScale-50)/2); | |
| 126 | + make.left.equalTo(self->_picImage).offset(5); | |
| 127 | + make.bottom.equalTo(self->_picImage).offset(-5); | |
| 128 | 128 | make.width.offset(50); |
| 129 | 129 | make.height.offset(50); |
| 130 | 130 | ... | ... |
CNLiveScioLive/Pages/Home/搜索/Controller/CNLiveSearchViewController.m
| ... | ... | @@ -484,10 +484,12 @@ |
| 484 | 484 | if ([text isEqualToString:@"<null>"]) { |
| 485 | 485 | text = @""; |
| 486 | 486 | } |
| 487 | - if (_dic[@"titleColor"]) { | |
| 487 | + NSString *titleColor = _dic[@"titleColor"]; | |
| 488 | + if (titleColor&&![titleColor isEqualToString:@""]) { | |
| 488 | 489 | cell.titleLabel.textColor = [UIColor colorWithHexString:_dic[@"titleColor"]]; |
| 489 | 490 | } |
| 490 | - if (_dic[@"tagsColor"]) { | |
| 491 | + NSString *tagsColor = _dic[@"tagsColor"]; | |
| 492 | + if (tagsColor&&![tagsColor isEqualToString:@""]) { | |
| 491 | 493 | cell.tagsLabel.backgroundColor = [UIColor colorWithHexString:_dic[@"tagsColor"]]; |
| 492 | 494 | } |
| 493 | 495 | cell.tagsLabel.text = text; | ... | ... |
CNLiveScioLive/Pages/Home/新闻详情/OldController/BaseViewController.m
| ... | ... | @@ -16,7 +16,11 @@ |
| 16 | 16 | |
| 17 | 17 | // [[UIApplication sharedApplication] setStatusBarOrientation:UIInterfaceOrientationPortrait]; |
| 18 | 18 | } |
| 19 | - | |
| 19 | +-(BOOL)forceEnableInteractivePopGestureRecognizer | |
| 20 | +{ | |
| 21 | + return YES; | |
| 22 | + | |
| 23 | +} | |
| 20 | 24 | - (BOOL)shouldAutorotate { |
| 21 | 25 | return NO; |
| 22 | 26 | } | ... | ... |
CNLiveScioLive/Pages/Home/新闻详情/OldController/OldVideoDetailViewController.h
| ... | ... | @@ -6,7 +6,6 @@ |
| 6 | 6 | // Copyright © 2018年 CNLive. All rights reserved. |
| 7 | 7 | // |
| 8 | 8 | |
| 9 | -#import "ZXVideoPlayerController.h" | |
| 10 | 9 | #import "CNLiveMyCollectionViewController.h" |
| 11 | 10 | #import "CNLivePlayerController.h" |
| 12 | 11 | #import "BaseViewController.h" |
| ... | ... | @@ -29,7 +28,6 @@ |
| 29 | 28 | } |
| 30 | 29 | @property (strong, nonatomic) UILabel *errorLabe; |
| 31 | 30 | @property (strong, nonatomic) UITableView *tableView; |
| 32 | -@property (strong, nonatomic) ZXVideoPlayerController *videoController; | |
| 33 | 31 | |
| 34 | 32 | @property (nonatomic, strong) CNLivePlayerController *liveController; |
| 35 | 33 | ... | ... |
CNLiveScioLive/Pages/Home/新闻详情/OldController/OldVideoDetailViewController.m
| ... | ... | @@ -22,18 +22,7 @@ |
| 22 | 22 | @end |
| 23 | 23 | @implementation OldVideoDetailViewController |
| 24 | 24 | - (void)Pop:(id)sender{ |
| 25 | -// [self.videoController stop]; | |
| 26 | - for(UIViewController *controller in self.navigationController.viewControllers) { | |
| 27 | - if([controller isKindOfClass:[CNLiveMyCollectionViewController class]]) { | |
| 28 | - [self.navigationController popViewControllerAnimated:YES]; | |
| 29 | - return; | |
| 30 | - } | |
| 31 | - if ([controller isKindOfClass:[SearchResultViewController class]]) { | |
| 32 | - [self.navigationController popViewControllerAnimated:YES]; | |
| 33 | - return; | |
| 34 | - } | |
| 35 | - } | |
| 36 | - [self.navigationController popToRootViewControllerAnimated:YES]; | |
| 25 | + [self.navigationController popViewControllerAnimated:YES]; | |
| 37 | 26 | } |
| 38 | 27 | - (id)initWithDictionary:(NSDictionary *)dictionary{ |
| 39 | 28 | if (self = [super init]) { |
| ... | ... | @@ -50,9 +39,9 @@ |
| 50 | 39 | NSData *data = [NSData dataWithContentsOfURL:[NSURL URLWithString:self->_dictionary[@"imgSmall"]]]; |
| 51 | 40 | self->bgImg = [UIImage imageWithData:data]; |
| 52 | 41 | dispatch_async(dispatch_get_main_queue(), ^{ |
| 53 | - if (self.videoController && self->bgImg) { | |
| 54 | - self.videoController.view.contentMode=UIViewContentModeScaleToFill; | |
| 55 | - self.videoController.view.layer.contents = (__bridge id _Nullable) (self->bgImg.CGImage); | |
| 42 | + if (self.liveController && self->bgImg) { | |
| 43 | + self.liveController.view.contentMode=UIViewContentModeScaleToFill; | |
| 44 | + self.liveController.view.layer.contents = (__bridge id _Nullable) (self->bgImg.CGImage); | |
| 56 | 45 | |
| 57 | 46 | } |
| 58 | 47 | }); |
| ... | ... | @@ -95,7 +84,6 @@ |
| 95 | 84 | { |
| 96 | 85 | [self.liveController stop]; |
| 97 | 86 | self.liveController = nil; |
| 98 | - self.videoController = nil; | |
| 99 | 87 | NSLog(@"delloc"); |
| 100 | 88 | } |
| 101 | 89 | - (void)loadShareView { |
| ... | ... | @@ -201,7 +189,6 @@ |
| 201 | 189 | } |
| 202 | 190 | - (void)viewWillDisappear:(BOOL)animated { |
| 203 | 191 | [super viewWillDisappear:animated]; |
| 204 | - [self.videoController stop]; | |
| 205 | 192 | [self.liveController stopShow]; |
| 206 | 193 | // self.liveController = nil; |
| 207 | 194 | [self.navigationController setNavigationBarHidden:NO]; |
| ... | ... | @@ -269,11 +256,7 @@ |
| 269 | 256 | [backgroundView addSubview:self.errorLabe]; |
| 270 | 257 | self.errorLabe.text = @"没有数据"; |
| 271 | 258 | self.errorLabe.hidden = YES; |
| 272 | - if ([_dictionary[@"playType"] isEqualToString:@"1"]) { | |
| 273 | 259 | [self addCNLivePlayer]; |
| 274 | - } else { | |
| 275 | - [self addZXVideo:movieUrl]; | |
| 276 | - } | |
| 277 | 260 | } |
| 278 | 261 | |
| 279 | 262 | // CNLivePlayer |
| ... | ... | @@ -289,19 +272,28 @@ |
| 289 | 272 | [backButton addTarget:self action:@selector(backButtonAction:) forControlEvents:UIControlEventTouchUpInside]; |
| 290 | 273 | [bgView addSubview:backButton]; |
| 291 | 274 | [self.view addSubview:bgView]; |
| 292 | - | |
| 275 | + self.liveController = [[CNLivePlayerController alloc] initWithContentURL:[NSURL URLWithString:self -> url]]; | |
| 276 | + if (!(nil==bgImg)) { | |
| 277 | + self.liveController.view.contentMode=UIViewContentModeScaleToFill; | |
| 278 | + self.liveController.view.layer.contents = (__bridge id _Nullable)(self->bgImg.CGImage); | |
| 279 | + } | |
| 280 | + [[AVAudioSession sharedInstance] setActive:YES error:nil]; | |
| 281 | + [bgView removeFromSuperview]; | |
| 282 | + [self.liveController configPlayerWithFrame:frame isLiving:NO]; | |
| 283 | + [self.liveController showInView:self.view]; | |
| 293 | 284 | // 点播 |
| 294 | - self.liveController = [[CNLivePlayerController alloc] initVodPlayWithVId:_dictionary[@"uuid"] authSuccess:^{ | |
| 295 | - NSError *error = nil; | |
| 296 | - [[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback error: &error]; | |
| 297 | - [[AVAudioSession sharedInstance] setActive:YES error:nil]; | |
| 298 | - | |
| 299 | - [bgView removeFromSuperview]; | |
| 300 | - [self.liveController configPlayerWithFrame:frame isLiving:NO]; | |
| 301 | - [self.liveController showInView:self.view]; | |
| 302 | - } authFailed:^(NSDictionary *errorInfo) { | |
| 303 | - NSLog(@"初始化点播播放器失败%@", errorInfo); | |
| 304 | - }]; | |
| 285 | +// self.liveController = [[CNLivePlayerController alloc] initVodPlayWithVId:_dictionary[@"uuid"] authSuccess:^{ | |
| 286 | +// [self.liveController reload:[NSURL URLWithString:self->url]]; | |
| 287 | +// NSError *error = nil; | |
| 288 | +// [[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback error: &error]; | |
| 289 | +// [[AVAudioSession sharedInstance] setActive:YES error:nil]; | |
| 290 | +// | |
| 291 | +// [bgView removeFromSuperview]; | |
| 292 | +// [self.liveController configPlayerWithFrame:frame isLiving:NO]; | |
| 293 | +// [self.liveController showInView:self.view]; | |
| 294 | +// } authFailed:^(NSDictionary *errorInfo) { | |
| 295 | +// NSLog(@"初始化点播播放器失败%@", errorInfo); | |
| 296 | +// }]; | |
| 305 | 297 | self.liveController.delegate = self; |
| 306 | 298 | |
| 307 | 299 | [[NSUserDefaults standardUserDefaults] setObject:@0 forKey:@"ZXVideoPlayer_DidLockScreen"]; |
| ... | ... | @@ -312,44 +304,6 @@ |
| 312 | 304 | [strongSelf.liveController destroyPlayer]; |
| 313 | 305 | // strongSelf.liveController = nil; |
| 314 | 306 | [strongSelf Pop:nil]; |
| 315 | - }; | |
| 316 | - } | |
| 317 | - ZXVideo *video = [[ZXVideo alloc] init]; | |
| 318 | - video.title = _dictionary[@"title"]; | |
| 319 | - video.playUrl = url; | |
| 320 | - self.liveController.video = video; | |
| 321 | -} | |
| 322 | -- (void)viewDidDisappear:(BOOL)animated{ | |
| 323 | - [(AppDelegate *)[UIApplication sharedApplication].delegate initializeSDKConfiguration]; | |
| 324 | - | |
| 325 | -} | |
| 326 | -- (void)backButtonAction:(UIButton *)sender { | |
| 327 | - [(AppDelegate *)[UIApplication sharedApplication].delegate initializeSDKConfiguration]; | |
| 328 | - [self.navigationController popViewControllerAnimated:YES]; | |
| 329 | -} | |
| 330 | - | |
| 331 | -- (void)addZXVideo:(NSURL *)videoUrl { | |
| 332 | - if (!self.videoController) { | |
| 333 | - CGRect frame = CGRectMake(0, iPhoneX ? 44 : 0, MainScreenWidth, videoHeight); | |
| 334 | - self.videoController = [[ZXVideoPlayerController alloc] initWithFrame:frame]; | |
| 335 | - //增加播放器背景图片 | |
| 336 | - if (!(nil==bgImg)) { | |
| 337 | - self.videoController.view.contentMode=UIViewContentModeScaleToFill; | |
| 338 | - self.videoController.view.layer.contents = (__bridge id _Nullable)(self->bgImg.CGImage); | |
| 339 | - } | |
| 340 | - self.liveController.delegate = self; | |
| 341 | - [self.videoController showInView:self.view]; | |
| 342 | - | |
| 343 | - __weak typeof(self) weakSelf = self; | |
| 344 | - self.videoController.videoPlayerShare = ^{ | |
| 345 | - __strong typeof(self) strongSelf = weakSelf; | |
| 346 | - [strongSelf shareButtonTaped:strongSelf->_shareBtn]; | |
| 347 | - }; | |
| 348 | - self.videoController.videoPlayerGoBackBlock = ^{ | |
| 349 | - __strong typeof(self) strongSelf = weakSelf; | |
| 350 | - [[NSUserDefaults standardUserDefaults] setObject:@0 forKey:@"ZXVideoPlayer_DidLockScreen"]; | |
| 351 | -// strongSelf.videoController = nil; | |
| 352 | - [strongSelf Pop:nil]; | |
| 353 | 307 | //时长统计结束 |
| 354 | 308 | if ([strongSelf->_dictionary[@"cmsColumnId"] isEqualToString:@"spzl/djzw/"]) { |
| 355 | 309 | //记者问答 |
| ... | ... | @@ -375,9 +329,7 @@ |
| 375 | 329 | } |
| 376 | 330 | |
| 377 | 331 | }; |
| 378 | - | |
| 379 | 332 | } |
| 380 | - | |
| 381 | 333 | //时长统计开始 |
| 382 | 334 | if ([_dictionary[@"cmsColumnId"] isEqualToString:@"spzl/djzw/"]) { |
| 383 | 335 | //记者问答 |
| ... | ... | @@ -402,10 +354,19 @@ |
| 402 | 354 | [CNLiveStat beginEvent:@"gxzssc"]; |
| 403 | 355 | } |
| 404 | 356 | ZXVideo *video = [[ZXVideo alloc] init]; |
| 405 | - video.playUrl = url; | |
| 406 | 357 | video.title = _dictionary[@"title"]; |
| 407 | - self.videoController.video = video; | |
| 358 | + video.playUrl = url; | |
| 359 | + self.liveController.video = video; | |
| 360 | +} | |
| 361 | +- (void)viewDidDisappear:(BOOL)animated{ | |
| 362 | + [(AppDelegate *)[UIApplication sharedApplication].delegate initializeSDKConfiguration]; | |
| 363 | + | |
| 364 | +} | |
| 365 | +- (void)backButtonAction:(UIButton *)sender { | |
| 366 | + [(AppDelegate *)[UIApplication sharedApplication].delegate initializeSDKConfiguration]; | |
| 367 | + [self.navigationController popViewControllerAnimated:YES]; | |
| 408 | 368 | } |
| 369 | + | |
| 409 | 370 | - (void)webView:(WKWebView *)webView decidePolicyForNavigationAction:(WKNavigationAction *)navigationAction decisionHandler:(void (^)(WKNavigationActionPolicy))decisionHandler { |
| 410 | 371 | NSURL *requestURL = webView.URL; |
| 411 | 372 | if (([[requestURL scheme] isEqualToString: @"http"] || [[requestURL scheme] isEqualToString:@"https"] || [[requestURL scheme] isEqualToString: @"mailto" ]) && (navigationAction.navigationType == WKNavigationTypeLinkActivated)) { |
| ... | ... | @@ -507,7 +468,8 @@ |
| 507 | 468 | [cell.backImage sd_setImageWithURL:[NSURL URLWithString:_dic[@"img"]] placeholderImage:[UIImage imageNamed:@"backDefault"]]; |
| 508 | 469 | cell.titleLabel.text = _dic[@"title"]; |
| 509 | 470 | cell.timeLabel.text = _dic[@"createDate"]; |
| 510 | - if (_dic[@"titleColor"]) { | |
| 471 | + NSString *titleColor = _dic[@"titleColor"]; | |
| 472 | + if (titleColor && ![titleColor isEqualToString:@""]) { | |
| 511 | 473 | cell.timeLabel.textColor = [UIColor colorWithHexString:_dic[@"titleColor"]]; |
| 512 | 474 | } |
| 513 | 475 | return cell; |
| ... | ... | @@ -520,7 +482,7 @@ |
| 520 | 482 | return cell; |
| 521 | 483 | } |
| 522 | 484 | - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { |
| 523 | - [tableView deselectRowAtIndexPath:indexPath animated:YES]; | |
| 485 | + [tableView deselectRowAtIndexPath:indexPath animated:YES]; | |
| 524 | 486 | NSLog(@"%@",_newsArray[indexPath.row]); |
| 525 | 487 | NSDictionary *_dic = _newsArray[indexPath.row]; |
| 526 | 488 | [self pushViewTo:_dic]; |
| ... | ... | @@ -531,7 +493,7 @@ |
| 531 | 493 | vc.title = _dic[@"cmsColumnName"]; |
| 532 | 494 | vc.hidesBottomBarWhenPushed = YES; |
| 533 | 495 | NSMutableArray *controllersAry = [NSMutableArray arrayWithArray:self.navigationController.viewControllers]; |
| 534 | - [controllersAry replaceObjectAtIndex:1 withObject:vc]; | |
| 496 | + [controllersAry replaceObjectAtIndex:self.navigationController.viewControllers.count-1 withObject:vc]; | |
| 535 | 497 | [self.navigationController setViewControllers:controllersAry animated:YES]; |
| 536 | 498 | |
| 537 | 499 | // [self.navigationController pushViewController:vc animated:YES]; | ... | ... |
CNLiveScioLive/Pages/Home/新闻详情/OldController/SCIOSpecialViewController.m
| ... | ... | @@ -439,10 +439,12 @@ |
| 439 | 439 | |
| 440 | 440 | cell.titleLabel.text = _dic[@"title"]; |
| 441 | 441 | cell.timeLabel.text = _dic[@"createDate"]; |
| 442 | - if (_dic[@"titleColor"]) { | |
| 443 | - cell.tintColor = [UIColor colorWithHexString:_dic[@"titleColor"]]; | |
| 442 | + NSString * titleColor = _dic[@"titleColor"]; | |
| 443 | + if (titleColor&&![titleColor isEqualToString:@""]) { | |
| 444 | + cell.titleLabel.textColor = [UIColor colorWithHexString:_dic[@"titleColor"]]; | |
| 444 | 445 | } |
| 445 | - if (_dic[@"tagsColor"]) { | |
| 446 | + NSString *tagsColor = _dic[@"tagsColor"]; | |
| 447 | + if (tagsColor&&![tagsColor isEqualToString:@""]) { | |
| 446 | 448 | cell.tagsLabel.backgroundColor = [UIColor colorWithHexString:_dic[@"tagsColor"]]; |
| 447 | 449 | } |
| 448 | 450 | NSString *text = [NSString stringWithFormat:@"%@",_dic[@"tags"]]; | ... | ... |
CNLiveScioLive/Pages/Home/答记者问/Controller/CNLiveReporterAskedViewController.m
| ... | ... | @@ -36,6 +36,10 @@ static NSString *newsUpPicTableViewCell = @"CNLiveNewsUpPicTableViewCell"; |
| 36 | 36 | NSDictionary *parameters = @{@"params":categoryId}; |
| 37 | 37 | |
| 38 | 38 | if (![[Reachability reachabilityForInternetConnection] currentReachabilityStatus]) { |
| 39 | + NSData *data = [[NSUserDefaults standardUserDefaults] objectForKey:self.cid]; | |
| 40 | + if (data &&self.pageNo == 1) { | |
| 41 | + [self dealDictionaryData:data]; | |
| 42 | + } | |
| 39 | 43 | [AlertViewTool showHUDViewText:CustomStr(@"NetworkiInterruption")]; |
| 40 | 44 | [self.tableView.mj_header endRefreshing]; |
| 41 | 45 | [self.tableView.mj_footer endRefreshing]; |
| ... | ... | @@ -52,29 +56,15 @@ static NSString *newsUpPicTableViewCell = @"CNLiveNewsUpPicTableViewCell"; |
| 52 | 56 | NSDictionary *dic = [NSDictionary dictionaryWithDictionary:json]; |
| 53 | 57 | |
| 54 | 58 | if ([dic[@"errorCode"] isEqualToString:@"0"]) { |
| 55 | - if ([dic[@"programs"] isKindOfClass:[NSArray class]]) { | |
| 56 | - NSArray *lists = dic[@"programs"]; | |
| 57 | - | |
| 58 | - if(self->_pageNo == 1&&lists.count > 0){ | |
| 59 | - [self.data removeAllObjects]; | |
| 60 | - | |
| 61 | - } | |
| 62 | - self->_pageNo++; | |
| 63 | - | |
| 64 | - for (NSDictionary *dics in lists) { | |
| 65 | - [CNHomeModel mj_setupReplacedKeyFromPropertyName:^NSDictionary *{ | |
| 66 | - return @{ @"ID" : @"id" ,@"Description" : @"description" }; | |
| 67 | - }]; | |
| 68 | - | |
| 69 | - NSLog(@"%@",dics); | |
| 70 | - [self.data addObject:[CNHomeModel mj_objectWithKeyValues:dics]]; | |
| 71 | - | |
| 72 | - } | |
| 73 | - | |
| 74 | - } | |
| 59 | + NSData *data = [dic mj_JSONData]; | |
| 60 | + [[NSUserDefaults standardUserDefaults] setObject:data forKey:self.cid]; | |
| 61 | + [self dealDictionaryData:data]; | |
| 75 | 62 | |
| 76 | 63 | } else { |
| 77 | - | |
| 64 | + NSData *data = [[NSUserDefaults standardUserDefaults] objectForKey:self.cid]; | |
| 65 | + if (data &&self.pageNo == 1) { | |
| 66 | + [self dealDictionaryData:data]; | |
| 67 | + } | |
| 78 | 68 | [AlertViewTool showHUDViewText:dic[@"errorMessage"]]; |
| 79 | 69 | |
| 80 | 70 | } |
| ... | ... | @@ -87,18 +77,51 @@ static NSString *newsUpPicTableViewCell = @"CNLiveNewsUpPicTableViewCell"; |
| 87 | 77 | [self.tableView.mj_footer endRefreshing]; |
| 88 | 78 | |
| 89 | 79 | } |
| 90 | - [self.tableView reloadData]; | |
| 80 | + | |
| 91 | 81 | self->_isRefreshing = NO; |
| 92 | 82 | |
| 93 | 83 | |
| 94 | 84 | } failure:^(NSError *error) { |
| 85 | + [AlertViewTool hideHUDView]; | |
| 95 | 86 | [AlertViewTool showHUDViewText:CustomStr(@"ServerBusy")]; |
| 96 | 87 | self->_isRefreshing = NO; |
| 97 | - [AlertViewTool hideHUDView]; | |
| 88 | + [self.tableView.mj_header endRefreshing]; | |
| 89 | + [self.tableView.mj_footer endRefreshing]; | |
| 90 | + NSData *data = [[NSUserDefaults standardUserDefaults] objectForKey:self.cid]; | |
| 91 | + if (data &&self.pageNo == 1) { | |
| 92 | + [self dealDictionaryData:data]; | |
| 93 | + } | |
| 94 | + | |
| 98 | 95 | |
| 99 | 96 | }]; |
| 100 | 97 | } |
| 101 | 98 | |
| 99 | +-(void)dealDictionaryData:(NSData *)data | |
| 100 | +{ | |
| 101 | + NSDictionary *dic = [data mj_JSONObject]; | |
| 102 | + if ([dic[@"programs"] isKindOfClass:[NSArray class]]) { | |
| 103 | + NSArray *lists = dic[@"programs"]; | |
| 104 | + | |
| 105 | + if(self->_pageNo == 1&&lists.count > 0){ | |
| 106 | + [self.data removeAllObjects]; | |
| 107 | + | |
| 108 | + } | |
| 109 | + self->_pageNo++; | |
| 110 | + | |
| 111 | + for (NSDictionary *dics in lists) { | |
| 112 | + [CNHomeModel mj_setupReplacedKeyFromPropertyName:^NSDictionary *{ | |
| 113 | + return @{ @"ID" : @"id" ,@"Description" : @"description" }; | |
| 114 | + }]; | |
| 115 | + | |
| 116 | + NSLog(@"%@",dics); | |
| 117 | + [self.data addObject:[CNHomeModel mj_objectWithKeyValues:dics]]; | |
| 118 | + | |
| 119 | + } | |
| 120 | + | |
| 121 | + } | |
| 122 | + [self.tableView reloadData]; | |
| 123 | +} | |
| 124 | + | |
| 102 | 125 | - (void)loadUpData{ |
| 103 | 126 | _pageNo = 1; |
| 104 | 127 | if(!_isRefreshing){ |
| ... | ... | @@ -193,7 +216,7 @@ static NSString *newsUpPicTableViewCell = @"CNLiveNewsUpPicTableViewCell"; |
| 193 | 216 | |
| 194 | 217 | } |
| 195 | 218 | else{ |
| 196 | - if(model.img){ | |
| 219 | + if(model.img&&![model.img isEqualToString:@""]){ | |
| 197 | 220 | //一张图 左边 |
| 198 | 221 | CNLiveNewsLeftPicTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:newsLeftPicTableViewCell]; |
| 199 | 222 | if (!cell) { | ... | ... |
CNLiveScioLive/Pages/Home/高级搜索/Controller/SearchResultViewController.m
| ... | ... | @@ -318,7 +318,7 @@ |
| 318 | 318 | NSArray *programs = dic[@"programs"]; |
| 319 | 319 | if (programs.count == 0) { |
| 320 | 320 | |
| 321 | - [self.tableView.mj_footer noticeNoMoreData]; | |
| 321 | + [self.tableView.mj_footer endRefreshingWithNoMoreData]; | |
| 322 | 322 | }else { |
| 323 | 323 | |
| 324 | 324 | [self.dataArray addObjectsFromArray:programs]; | ... | ... |
CNLiveScioLive/Pages/Home/高级搜索/Controller/SelectedViewController.m
| ... | ... | @@ -70,7 +70,7 @@ |
| 70 | 70 | |
| 71 | 71 | - (void)getList { |
| 72 | 72 | |
| 73 | - NSString *strUrl = [NSString stringWithFormat:@"%@%@",REQUESTURL(@"gxb/api/"),self.url]; | |
| 73 | + NSString *strUrl = [NSString stringWithFormat:@"%@/%@",REQUESTURL(@"gxb/api"),self.url]; | |
| 74 | 74 | NSMutableDictionary *param = [NSMutableDictionary dictionary]; |
| 75 | 75 | [param setObject:@"i" forKey:@"plat"]; |
| 76 | 76 | [param setObject:@"5.0" forKey:@"version"]; | ... | ... |
CNLiveScioLive/Pages/Live/Controller/CNLiveViewController.m
| ... | ... | @@ -42,6 +42,11 @@ static NSString *indicatorTableViewCell = @"CNLiveIndicatorTableViewCell"; |
| 42 | 42 | - (void)getData{ |
| 43 | 43 | [MBProgressHUD showHUDAddedTo:self.view animated:YES]; |
| 44 | 44 | if (![[Reachability reachabilityForInternetConnection] currentReachabilityStatus]) { |
| 45 | + NSData *data = [[NSUserDefaults standardUserDefaults] objectForKey:@"LiveHeader"]; | |
| 46 | + if (data) { | |
| 47 | + [self dealDictionaryData:data]; | |
| 48 | + } | |
| 49 | + [MBProgressHUD hideHUDForView:self.view animated:YES]; | |
| 45 | 50 | [AlertViewTool showHUDViewText:CustomStr(@"NetworkiInterruption")]; |
| 46 | 51 | return; |
| 47 | 52 | } |
| ... | ... | @@ -51,20 +56,31 @@ static NSString *indicatorTableViewCell = @"CNLiveIndicatorTableViewCell"; |
| 51 | 56 | |
| 52 | 57 | // 请求成功,解析数据 |
| 53 | 58 | NSDictionary *dic = [NSDictionary dictionaryWithDictionary:json]; |
| 54 | - [CNLiveModel mj_setupReplacedKeyFromPropertyName:^NSDictionary *{ | |
| 55 | - return @{ @"ID" : @"id" ,@"Description" : @"description" }; | |
| 56 | - }]; | |
| 57 | - self.liveModel = [CNLiveModel mj_objectWithKeyValues:dic]; | |
| 58 | - self.header.model = [CNLiveModel mj_objectWithKeyValues:dic]; | |
| 59 | - [self.tableView reloadData]; | |
| 59 | + NSData *data = [dic mj_JSONData]; | |
| 60 | + [[NSUserDefaults standardUserDefaults] setObject:data forKey:@"LiveHeader"]; | |
| 61 | + [self dealDictionaryData:data]; | |
| 60 | 62 | // self->_isLoaded = YES; |
| 61 | 63 | |
| 62 | 64 | } failure:^(NSError *error) { |
| 65 | + NSData *data = [[NSUserDefaults standardUserDefaults] objectForKey:@"LiveHeader"]; | |
| 66 | + if (data) { | |
| 67 | + [self dealDictionaryData:data]; | |
| 68 | + } | |
| 63 | 69 | [AlertViewTool showHUDAddedToView:self.view text:CustomStr(@"ServerBusy")]; |
| 64 | 70 | [MBProgressHUD hideHUDForView:self.view animated:YES]; |
| 65 | 71 | |
| 66 | 72 | }]; |
| 67 | 73 | } |
| 74 | +-(void)dealDictionaryData:(NSData *)data | |
| 75 | +{ | |
| 76 | + NSDictionary *dic = [data mj_JSONObject]; | |
| 77 | + [CNLiveModel mj_setupReplacedKeyFromPropertyName:^NSDictionary *{ | |
| 78 | + return @{ @"ID" : @"id" ,@"Description" : @"description" }; | |
| 79 | + }]; | |
| 80 | + self.liveModel = [CNLiveModel mj_objectWithKeyValues:dic]; | |
| 81 | + self.header.model = [CNLiveModel mj_objectWithKeyValues:dic]; | |
| 82 | + [self.tableView reloadData]; | |
| 83 | +} | |
| 68 | 84 | - (void)loadData{ |
| 69 | 85 | NSString *strUrl = REQUESTURL(@"gxb/api/cataloglatest"); |
| 70 | 86 | NSLog(@"%@",strUrl); |
| ... | ... | @@ -74,6 +90,10 @@ static NSString *indicatorTableViewCell = @"CNLiveIndicatorTableViewCell"; |
| 74 | 90 | NSLog(@"%@",parameters); |
| 75 | 91 | |
| 76 | 92 | if (![[Reachability reachabilityForInternetConnection] currentReachabilityStatus]) { |
| 93 | + NSData *data = [[NSUserDefaults standardUserDefaults] objectForKey:@"liveList"]; | |
| 94 | + if (data && self.pageNo == 1) { | |
| 95 | + [self dealDictionaryListData:data]; | |
| 96 | + } | |
| 77 | 97 | [AlertViewTool showHUDAddedToView:self.view text:CustomStr(@"NetworkiInterruption")]; |
| 78 | 98 | [self.tableView.mj_header endRefreshing]; |
| 79 | 99 | [self.tableView.mj_footer endRefreshing]; |
| ... | ... | @@ -90,38 +110,17 @@ static NSString *indicatorTableViewCell = @"CNLiveIndicatorTableViewCell"; |
| 90 | 110 | NSDictionary *dic = [NSDictionary dictionaryWithDictionary:json]; |
| 91 | 111 | |
| 92 | 112 | if ([dic[@"errorCode"] isEqualToString:@"0"]) { |
| 93 | -// if ([dic[@"programs"] isKindOfClass:[NSDictionary class]] && [dic[@"programs"] count]) { | |
| 94 | -// NSDictionary *dics = dic[@"programs"]; | |
| 95 | -// [CNLiveModel mj_setupReplacedKeyFromPropertyName:^NSDictionary *{ | |
| 96 | -// return @{ @"ID" : @"id" ,@"Description" : @"description" }; | |
| 97 | -// }]; | |
| 98 | -// [self.data addObject:[CNLiveModel mj_objectWithKeyValues:dics]]; | |
| 99 | -// } | |
| 100 | - | |
| 101 | - if ([dic[@"programs"] isKindOfClass:[NSArray class]]) { | |
| 102 | - self->_newsArray = dic[@"programs"]; | |
| 103 | - NSArray *lists = dic[@"programs"]; | |
| 104 | - | |
| 105 | - if(self->_pageNo == 1&&lists.count > 0){ | |
| 106 | - [self.data removeAllObjects]; | |
| 107 | - | |
| 108 | - } | |
| 109 | - self->_pageNo++; | |
| 110 | - | |
| 111 | - for (NSDictionary *dics in lists) { | |
| 112 | - [CNLiveModel mj_setupReplacedKeyFromPropertyName:^NSDictionary *{ | |
| 113 | - return @{ @"ID" : @"id" ,@"Description" : @"description" }; | |
| 114 | - }]; | |
| 115 | - | |
| 116 | - NSLog(@"%@",dics); | |
| 117 | - [self.data addObject:[CNLiveModel mj_objectWithKeyValues:dics]]; | |
| 118 | - | |
| 119 | - } | |
| 120 | - | |
| 113 | + NSData *data = [dic mj_JSONData]; | |
| 114 | + if ( self.pageNo ==1 ) { | |
| 115 | + [[NSUserDefaults standardUserDefaults] setObject:data forKey:@"liveList"]; | |
| 121 | 116 | } |
| 122 | - | |
| 117 | + [self dealDictionaryListData:data]; | |
| 123 | 118 | |
| 124 | 119 | } else { |
| 120 | + NSData *data = [[NSUserDefaults standardUserDefaults] objectForKey:@"liveList"]; | |
| 121 | + if (data && self.pageNo == 1) { | |
| 122 | + [self dealDictionaryListData:data]; | |
| 123 | + } | |
| 125 | 124 | [AlertViewTool showHUDAddedToView:self.view text:dic[@"errorMessage"]]; |
| 126 | 125 | |
| 127 | 126 | } |
| ... | ... | @@ -134,17 +133,48 @@ static NSString *indicatorTableViewCell = @"CNLiveIndicatorTableViewCell"; |
| 134 | 133 | [self.tableView.mj_footer endRefreshing]; |
| 135 | 134 | |
| 136 | 135 | } |
| 137 | - [self.tableView reloadData]; | |
| 136 | + | |
| 138 | 137 | self->_isRefreshing = NO; |
| 139 | 138 | |
| 140 | 139 | |
| 141 | 140 | } failure:^(NSError *error) { |
| 141 | + NSData *data = [[NSUserDefaults standardUserDefaults] objectForKey:@"liveList"]; | |
| 142 | + if (data && self.pageNo == 1) { | |
| 143 | + [self dealDictionaryListData:data]; | |
| 144 | + } | |
| 142 | 145 | self->_isRefreshing = NO; |
| 143 | 146 | [AlertViewTool hideHUDView]; |
| 144 | 147 | [AlertViewTool showHUDViewText:CustomStr(@"ServerBusy")]; |
| 148 | + [self.tableView.mj_header endRefreshing]; | |
| 149 | + [self.tableView.mj_footer endRefreshing]; | |
| 145 | 150 | |
| 146 | 151 | }]; |
| 147 | 152 | } |
| 153 | +-(void)dealDictionaryListData:(NSData *)data{ | |
| 154 | + NSDictionary *dic = [data mj_JSONObject]; | |
| 155 | + if ([dic[@"programs"] isKindOfClass:[NSArray class]]) { | |
| 156 | + self->_newsArray = dic[@"programs"]; | |
| 157 | + NSArray *lists = dic[@"programs"]; | |
| 158 | + | |
| 159 | + if(self->_pageNo == 1&&lists.count > 0){ | |
| 160 | + [self.data removeAllObjects]; | |
| 161 | + | |
| 162 | + } | |
| 163 | + self->_pageNo++; | |
| 164 | + | |
| 165 | + for (NSDictionary *dics in lists) { | |
| 166 | + [CNLiveModel mj_setupReplacedKeyFromPropertyName:^NSDictionary *{ | |
| 167 | + return @{ @"ID" : @"id" ,@"Description" : @"description" }; | |
| 168 | + }]; | |
| 169 | + | |
| 170 | + NSLog(@"%@",dics); | |
| 171 | + [self.data addObject:[CNLiveModel mj_objectWithKeyValues:dics]]; | |
| 172 | + | |
| 173 | + } | |
| 174 | + | |
| 175 | + } | |
| 176 | + [self.tableView reloadData]; | |
| 177 | +} | |
| 148 | 178 | - (void)loadYGData { |
| 149 | 179 | NSString *strUrl = REQUESTURL(@"gxb/api/cataloglatest"); |
| 150 | 180 | //NSLog(@"%@",strUrl); |
| ... | ... | @@ -242,7 +272,11 @@ static NSString *indicatorTableViewCell = @"CNLiveIndicatorTableViewCell"; |
| 242 | 272 | headerButton.layer.masksToBounds = true; |
| 243 | 273 | [headerButton setImage:[UIImage imageNamed:@"cnlive_icon"] forState:UIControlStateNormal]; |
| 244 | 274 | [headerButton setTitle:@"直播" forState:UIControlStateNormal]; |
| 275 | + if (HOMETITLECOLORSTR) { | |
| 276 | + [headerButton setTitleColor:[UIColor colorWithHexString:HOMETITLECOLORSTR] forState:UIControlStateNormal]; | |
| 277 | + }else{ | |
| 245 | 278 | [headerButton setTitleColor:Color_Blue forState:UIControlStateNormal]; |
| 279 | + } | |
| 246 | 280 | headerButton.titleLabel.font = [UIFont systemFontOfSize:15]; |
| 247 | 281 | |
| 248 | 282 | headerButton.contentHorizontalAlignment = UIControlContentHorizontalAlignmentLeft;//居左显示 |
| ... | ... | @@ -471,7 +505,7 @@ static NSString *indicatorTableViewCell = @"CNLiveIndicatorTableViewCell"; |
| 471 | 505 | } |
| 472 | 506 | - (CNLiveHeaderView *)header{ |
| 473 | 507 | if(!_header){ |
| 474 | - _header = [[CNLiveHeaderView alloc]initWithFrame:CGRectMake(0, 0, MainScreenWidth, 180)]; | |
| 508 | + _header = [[CNLiveHeaderView alloc]initWithFrame:CGRectMake(0, 0, MainScreenWidth, MainScreenWidth*9 /16)]; | |
| 475 | 509 | _header.backgroundColor = Color_Blue; |
| 476 | 510 | } |
| 477 | 511 | return _header; | ... | ... |
CNLiveScioLive/Pages/Live/Controller/GraphicLiveViewController.m
| ... | ... | @@ -55,14 +55,42 @@ |
| 55 | 55 | |
| 56 | 56 | - (void)loadData { |
| 57 | 57 | if (![[Reachability reachabilityForInternetConnection] currentReachabilityStatus]) { |
| 58 | + [self setUpUIWithTag:1000 Height:0]; | |
| 59 | + return; | |
| 60 | + } | |
| 61 | + | |
| 62 | + AFHTTPSessionManager *manager = [AFHTTPSessionManager manager]; | |
| 63 | + manager.responseSerializer = [AFHTTPResponseSerializer serializer]; | |
| 64 | + [manager POST:@"http://s.scio.gov.cn/ocms/.content/function_provider/arswitch1.json" parameters:nil headers:nil progress:NULL success:^(NSURLSessionDataTask *task, id responseObject) { | |
| 65 | + NSLog(@"%@",responseObject); | |
| 66 | + NSDictionary *dic = [NSJSONSerialization JSONObjectWithData:responseObject options:NSJSONReadingMutableContainers error:nil]; | |
| 67 | + NSString *errorCode = dic[@"errorCode"]; | |
| 68 | + | |
| 69 | + if ([errorCode isEqualToString:@"1"]) { | |
| 70 | + [self requestJsonData:dic[@"docId"]]; | |
| 71 | + } | |
| 72 | + | |
| 73 | + | |
| 74 | + } failure:^(NSURLSessionDataTask *task, NSError *error) { | |
| 75 | + NSLog(@"%@",error); | |
| 76 | + [self setUpUIWithTag:1000 Height:0]; | |
| 77 | + | |
| 78 | + }]; | |
| 79 | + | |
| 80 | + | |
| 81 | +} | |
| 82 | +-(void)requestJsonData:(NSString *)docId | |
| 83 | +{ | |
| 84 | + if (![[Reachability reachabilityForInternetConnection] currentReachabilityStatus]) { | |
| 58 | 85 | [AlertViewTool showHUDViewText:CustomStr(@"NetworkiInterruption")]; |
| 59 | 86 | return; |
| 60 | 87 | } |
| 61 | 88 | [AlertViewTool showHUDView]; |
| 62 | 89 | AFHTTPSessionManager *manager = [AFHTTPSessionManager manager]; |
| 63 | 90 | manager.responseSerializer = [AFHTTPResponseSerializer serializer]; |
| 64 | - [manager POST:tuwenzhibo parameters:nil headers:nil progress:^(NSProgress * _Nonnull uploadProgress) {} success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) { | |
| 91 | + [manager POST:tuwen(docId.intValue) parameters:nil headers:nil progress:^(NSProgress * _Nonnull uploadProgress) {} success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) { | |
| 65 | 92 | [AlertViewTool hideHUDView]; |
| 93 | + [self setUpUIWithTag:1000 Height:40.0]; | |
| 66 | 94 | // 请求成功,解析数据 |
| 67 | 95 | NSString * jsonString = [[NSString alloc] initWithData:responseObject encoding:NSUTF8StringEncoding]; |
| 68 | 96 | NSArray *arr = [jsonString objectFromJSONString]; |
| ... | ... | @@ -72,7 +100,7 @@ |
| 72 | 100 | } else { |
| 73 | 101 | [self->_webView loadHTMLString:@"<html><body> </body></html>" baseURL:nil]; |
| 74 | 102 | } |
| 75 | - | |
| 103 | + | |
| 76 | 104 | |
| 77 | 105 | } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) { |
| 78 | 106 | // 请求失败 |
| ... | ... | @@ -82,7 +110,6 @@ |
| 82 | 110 | |
| 83 | 111 | }]; |
| 84 | 112 | } |
| 85 | - | |
| 86 | 113 | - (void)viewWillAppear:(BOOL)animated { |
| 87 | 114 | [super viewWillAppear:animated]; |
| 88 | 115 | [[JGMusicManager shareMusicManager] playStop]; |
| ... | ... | @@ -96,7 +123,6 @@ |
| 96 | 123 | - (void)viewWillDisappear:(BOOL)animated { |
| 97 | 124 | [super viewWillDisappear:animated]; |
| 98 | 125 | [self.liveController stopShow]; |
| 99 | -// self.liveController = nil; | |
| 100 | 126 | [self.navigationController setNavigationBarHidden:NO]; |
| 101 | 127 | } |
| 102 | 128 | |
| ... | ... | @@ -117,15 +143,6 @@ |
| 117 | 143 | backgroundView.bounces = NO; |
| 118 | 144 | [self.view addSubview:backgroundView]; |
| 119 | 145 | |
| 120 | - relatedWebView = [[WKWebView alloc] initWithFrame:CGRectZero]; | |
| 121 | - relatedWebView.scrollView.backgroundColor = [UIColor whiteColor]; | |
| 122 | -// relatedWebView.dataDetectorTypes = UIDataDetectorTypeNone; | |
| 123 | - relatedWebView.backgroundColor = [UIColor whiteColor]; | |
| 124 | - relatedWebView.scrollView.bounces = NO; | |
| 125 | - relatedWebView.navigationDelegate = self; | |
| 126 | - relatedWebView.opaque = NO; | |
| 127 | - relatedWebView.tag = 1000; | |
| 128 | - [backgroundView addSubview:relatedWebView]; | |
| 129 | 146 | |
| 130 | 147 | // NSString* htmlHeader = [[NSString alloc] initWithFormat:@"<html><font style=\"font-size:20px;\"><strong>%@</strong></font><br><p>%@</p><p>来源 : 国新网</p><body>",[_dictionary objectForKey:@"title"],[_dictionary objectForKey:@"liveStartDateTime"]]; |
| 131 | 148 | // NSString* htmlFooter = [[NSString alloc] initWithFormat:@"<div class=\"logo\" style=\"text-indent:2em\">%@</div></body></html>",[_dictionary objectForKey:@"Description"]]; |
| ... | ... | @@ -156,16 +173,6 @@ |
| 156 | 173 | NSString* strHtml = [[NSString alloc] initWithFormat:@"%@%@",htmlHeader,htmlFooter]; |
| 157 | 174 | [relatedWebView loadHTMLString:strHtml baseURL:nil]; |
| 158 | 175 | |
| 159 | - _webView = [[WKWebView alloc] initWithFrame:CGRectZero]; | |
| 160 | - _webView.scrollView.backgroundColor = [UIColor whiteColor]; | |
| 161 | -// _webView.dataDetectorTypes = UIDataDetectorTypeNone; | |
| 162 | - _webView.backgroundColor = [UIColor whiteColor]; | |
| 163 | - _webView.navigationDelegate = self; | |
| 164 | - _webView.opaque = NO; | |
| 165 | - _webView.tag = 2000; | |
| 166 | - _webView.hidden = YES; | |
| 167 | - [backgroundView addSubview:_webView]; | |
| 168 | - | |
| 169 | 176 | if (!isPlay) { |
| 170 | 177 | [self loadMovieView]; |
| 171 | 178 | } else { |
| ... | ... | @@ -329,44 +336,51 @@ |
| 329 | 336 | [relatedWebView setFrame:CGRectMake(0, 0, MainScreenWidth, descriptionHeight)]; |
| 330 | 337 | }]; |
| 331 | 338 | } |
| 332 | - | |
| 333 | - if (![[Reachability reachabilityForInternetConnection] currentReachabilityStatus]) { | |
| 334 | - [self setUpUIWithTag:webView.tag Height:0]; | |
| 335 | - return; | |
| 336 | - } | |
| 337 | - | |
| 338 | - AFHTTPSessionManager *manager = [AFHTTPSessionManager manager]; | |
| 339 | - manager.responseSerializer = [AFHTTPResponseSerializer serializer]; | |
| 340 | - [manager POST:@"http://s.scio.gov.cn/ocms/.content/function_provider/arswitch.json" parameters:nil headers:nil progress:NULL success:^(NSURLSessionDataTask *task, id responseObject) { | |
| 341 | - NSLog(@"%@",responseObject); | |
| 342 | - NSDictionary *dic = [NSJSONSerialization JSONObjectWithData:responseObject options:NSJSONReadingMutableContainers error:nil]; | |
| 343 | - NSString *errorCode = dic[@"errorCode"]; | |
| 344 | - [self setUpUIWithTag:webView.tag Height:[errorCode isEqualToString:@"1"]?40.0:0.0]; | |
| 345 | - | |
| 346 | - } failure:^(NSURLSessionDataTask *task, NSError *error) { | |
| 347 | - NSLog(@"%@",error); | |
| 348 | - [self setUpUIWithTag:webView.tag Height:0]; | |
| 339 | + if (webView.tag==2000) { | |
| 340 | + CGFloat width = MainScreenWidth - 20; | |
| 341 | + NSString *string = [NSString stringWithFormat: | |
| 342 | + @"var script = document.createElement('script');" | |
| 343 | + "script.type = 'text/javascript';" | |
| 344 | + "script.text = \"function ResizeImages() { " | |
| 345 | + "var myimg,oldwidth;" | |
| 346 | + "var maxwidth=%f;" //缩放系数 | |
| 347 | + "for(i=0;i <document.images.length;i++){" | |
| 348 | + "myimg = document.images[i];" | |
| 349 | + "if(myimg.width > maxwidth){" | |
| 350 | + "oldwidth = myimg.width;" | |
| 351 | + "myimg.width = maxwidth;" | |
| 352 | + "myimg.height = myimg.height * (maxwidth/oldwidth);" | |
| 353 | + "}" | |
| 354 | + "}" | |
| 355 | + "}\";" | |
| 356 | + "document.getElementsByTagName('head')[0].appendChild(script);",width]; | |
| 349 | 357 | |
| 350 | - }]; | |
| 351 | - | |
| 358 | + [webView evaluateJavaScript:string completionHandler:nil]; | |
| 359 | + [webView evaluateJavaScript:@"ResizeImages();" completionHandler:nil]; | |
| 360 | + | |
| 361 | + CGRect frame = webView.frame; | |
| 362 | + frame.size.width = MainScreenWidth; | |
| 363 | + frame.size.height = 1; | |
| 364 | + webView.frame = frame; | |
| 365 | + [webView evaluateJavaScript:@"document.body.scrollHeight"completionHandler:^(id _Nullable result,NSError * _Nullable error){ | |
| 366 | + self->graphicLiveHeight = [result floatValue]; | |
| 367 | + if (0 == [self->heightArr[self->fontIndex] floatValue]) { | |
| 368 | + [self->heightArr replaceObjectAtIndex:self->fontIndex withObject:[NSString stringWithFormat:@"%f",self->graphicLiveHeight]]; | |
| 369 | + } | |
| 370 | + | |
| 371 | + if (self->isShow) { | |
| 372 | + NSLog(@"fontIndex = %d",self->fontIndex); | |
| 373 | + [self->backgroundView setContentSize:CGSizeMake(MainScreenWidth, 40 + self->descriptionHeight + [self->heightArr[self->fontIndex] floatValue] + 221)]; | |
| 374 | + [webView setFrame:CGRectMake(0, 40 + self->descriptionHeight, MainScreenWidth, [self->heightArr[self->fontIndex] floatValue])]; | |
| 375 | + [self showRelatedInformation:40 + self->descriptionHeight + [self->heightArr[self->fontIndex] floatValue]]; | |
| 376 | + } | |
| 377 | + }]; | |
| 378 | + } | |
| 379 | + | |
| 352 | 380 | } |
| 353 | 381 | - (void)setUpUIWithTag:(NSInteger)tag Height:(NSInteger)height{ |
| 354 | 382 | |
| 355 | 383 | if (1000 == tag) { |
| 356 | - CGRect frame = relatedWebView.frame; | |
| 357 | - frame.size.width = MainScreenWidth; | |
| 358 | - frame.size.height = 1; | |
| 359 | - relatedWebView.frame = frame; | |
| 360 | -// descriptionHeight = relatedWebView.scrollView.contentSize.height; | |
| 361 | - [relatedWebView evaluateJavaScript:@"document.body.scrollHeight"completionHandler:^(id _Nullable result,NSError * _Nullable error){ | |
| 362 | - NSLog(@"scrollHeight高度:%.2f",[result floatValue]); | |
| 363 | - descriptionHeight = [result floatValue]; | |
| 364 | - dispatch_async(dispatch_get_main_queue(), ^{ | |
| 365 | - [relatedWebView setFrame:CGRectMake(0, 0, MainScreenWidth, descriptionHeight)]; | |
| 366 | - | |
| 367 | - }); | |
| 368 | - }]; | |
| 369 | -// [relatedWebView setFrame:CGRectMake(0, 0, MainScreenWidth, descriptionHeight)]; | |
| 370 | 384 | lineImage1 = [[UIImageView alloc] initWithFrame:CGRectMake(0, descriptionHeight, MainScreenWidth, 1)]; |
| 371 | 385 | lineImage1.backgroundColor = Color_Line; |
| 372 | 386 | [backgroundView addSubview:lineImage1]; |
| ... | ... | @@ -418,58 +432,6 @@ |
| 418 | 432 | |
| 419 | 433 | [self showRelatedInformation:height + descriptionHeight]; |
| 420 | 434 | |
| 421 | - } else if (2000 == tag) { | |
| 422 | - CGFloat width = MainScreenWidth - 20; | |
| 423 | - NSString *string = [NSString stringWithFormat: | |
| 424 | - @"var script = document.createElement('script');" | |
| 425 | - "script.type = 'text/javascript';" | |
| 426 | - "script.text = \"function ResizeImages() { " | |
| 427 | - "var myimg,oldwidth;" | |
| 428 | - "var maxwidth=%f;" //缩放系数 | |
| 429 | - "for(i=0;i <document.images.length;i++){" | |
| 430 | - "myimg = document.images[i];" | |
| 431 | - "if(myimg.width > maxwidth){" | |
| 432 | - "oldwidth = myimg.width;" | |
| 433 | - "myimg.width = maxwidth;" | |
| 434 | - "myimg.height = myimg.height * (maxwidth/oldwidth);" | |
| 435 | - "}" | |
| 436 | - "}" | |
| 437 | - "}\";" | |
| 438 | - "document.getElementsByTagName('head')[0].appendChild(script);",width]; | |
| 439 | - | |
| 440 | - [_webView evaluateJavaScript:string completionHandler:nil]; | |
| 441 | - [_webView evaluateJavaScript:@"ResizeImages();" completionHandler:nil]; | |
| 442 | - | |
| 443 | - CGRect frame = _webView.frame; | |
| 444 | - frame.size.width = MainScreenWidth; | |
| 445 | - frame.size.height = 1; | |
| 446 | - _webView.frame = frame; | |
| 447 | - [_webView evaluateJavaScript:@"document.body.scrollHeight"completionHandler:^(id _Nullable result,NSError * _Nullable error){ | |
| 448 | - graphicLiveHeight = [result floatValue]; | |
| 449 | - if (0 == [heightArr[fontIndex] floatValue]) { | |
| 450 | - [heightArr replaceObjectAtIndex:fontIndex withObject:[NSString stringWithFormat:@"%f",graphicLiveHeight]]; | |
| 451 | - } | |
| 452 | - | |
| 453 | - if (isShow) { | |
| 454 | - NSLog(@"fontIndex = %d",fontIndex); | |
| 455 | - [backgroundView setContentSize:CGSizeMake(MainScreenWidth, 40 + descriptionHeight + [heightArr[fontIndex] floatValue] + 221)]; | |
| 456 | - [_webView setFrame:CGRectMake(0, 40 + descriptionHeight, MainScreenWidth, [heightArr[fontIndex] floatValue])]; | |
| 457 | - [self showRelatedInformation:40 + descriptionHeight + [heightArr[fontIndex] floatValue]]; | |
| 458 | - } | |
| 459 | - }]; | |
| 460 | - | |
| 461 | - NSLog(@"%@",NSStringFromCGRect(_webView.frame)); | |
| 462 | - NSLog(@"%@",NSStringFromCGSize(_webView.scrollView.contentSize)); | |
| 463 | -// if (0 == [heightArr[fontIndex] floatValue]) { | |
| 464 | -// [heightArr replaceObjectAtIndex:fontIndex withObject:[NSString stringWithFormat:@"%f",graphicLiveHeight]]; | |
| 465 | -// } | |
| 466 | -// | |
| 467 | -// if (isShow) { | |
| 468 | -// NSLog(@"fontIndex = %d",fontIndex); | |
| 469 | -// [backgroundView setContentSize:CGSizeMake(MainScreenWidth, 40 + descriptionHeight + [heightArr[fontIndex] floatValue] + 221)]; | |
| 470 | -// [_webView setFrame:CGRectMake(0, 40 + descriptionHeight, MainScreenWidth, [heightArr[fontIndex] floatValue])]; | |
| 471 | -// [self showRelatedInformation:40 + descriptionHeight + [heightArr[fontIndex] floatValue]]; | |
| 472 | -// } | |
| 473 | 435 | } |
| 474 | 436 | } |
| 475 | 437 | ... | ... |
CNLiveScioLive/Pages/Live/Controller/TopNoticeViewController.m
| ... | ... | @@ -35,7 +35,7 @@ |
| 35 | 35 | NSLog(@"%@",josnParameters); |
| 36 | 36 | NSDictionary *parameters = @{@"params":josnParameters |
| 37 | 37 | }; |
| 38 | - NSString *urlStr = [NSString stringWithFormat:@"%@%@",FORECAST,@"programByContentId"]; | |
| 38 | + NSString *urlStr = REQUESTURL(@"gxb/api/programByContentId"); | |
| 39 | 39 | [manager POST:urlStr parameters:parameters headers:nil progress:^(NSProgress * _Nonnull uploadProgress) {} success:^(NSURLSessionDataTask * _Nonnull task, id responseObject) { |
| 40 | 40 | [AlertViewTool hideHUDView]; |
| 41 | 41 | // 请求成功,解析数据 |
| ... | ... | @@ -67,7 +67,7 @@ |
| 67 | 67 | NSLog(@"%@",josnParameters); |
| 68 | 68 | NSDictionary *parameters = @{@"params":josnParameters |
| 69 | 69 | }; |
| 70 | - NSString *urlStr = [NSString stringWithFormat:@"%@%@",FORECAST,@"programDetail"]; | |
| 70 | + NSString *urlStr = REQUESTURL(@"gxb/api/programDetail"); | |
| 71 | 71 | [manager POST:urlStr parameters:parameters headers:nil progress:^(NSProgress * _Nonnull uploadProgress) {} success:^(NSURLSessionDataTask * _Nonnull task, id responseObject) { |
| 72 | 72 | [AlertViewTool hideHUDView]; |
| 73 | 73 | // 请求成功,解析数据 | ... | ... |
CNLiveScioLive/Pages/Live/Controller/VideoPlayBackViewController.m
| ... | ... | @@ -562,7 +562,7 @@ |
| 562 | 562 | _newsArray = [NSArray arrayWithArray:array]; |
| 563 | 563 | [self.tableView setFrame:CGRectMake( 0, 40 + relatedWebView.scrollView.contentSize.height, MainScreenWidth, 36 + 86*_newsArray.count)]; |
| 564 | 564 | } |
| 565 | - [backgroundView setContentSize:CGSizeMake(MainScreenWidth, [heightArr[fontIndex] floatValue] + self.tableView.frame.size.height)]; | |
| 565 | + [backgroundView setContentSize:CGSizeMake(MainScreenWidth,40 + descriptionHeight + [heightArr[fontIndex] floatValue] + self.tableView.frame.size.height)]; | |
| 566 | 566 | [self.tableView reloadData]; |
| 567 | 567 | } else { |
| 568 | 568 | [AlertViewTool showHUDViewText:_dic[@"errorMessage"]]; |
| ... | ... | @@ -677,10 +677,7 @@ |
| 677 | 677 | [super didReceiveMemoryWarning]; |
| 678 | 678 | } |
| 679 | 679 | - (BOOL)shouldAutorotate { |
| 680 | -// if (![[[NSUserDefaults standardUserDefaults] objectForKey:@"ZXVideoPlayer_DidPlayBack"] boolValue]) { | |
| 681 | -// return [[[NSUserDefaults standardUserDefaults] objectForKey:@"ZXVideoPlayer_DidPlayBack"] boolValue]; | |
| 682 | -// } | |
| 683 | - return ![[[NSUserDefaults standardUserDefaults] objectForKey:@"ZXVideoPlayer_DidLockScreen"] boolValue]; | |
| 680 | + return isPlay; | |
| 684 | 681 | } |
| 685 | 682 | - (UIInterfaceOrientationMask)supportedInterfaceOrientations { |
| 686 | 683 | return UIInterfaceOrientationMaskAllButUpsideDown; | ... | ... |
CNLiveScioLive/Pages/Live/View/CNLiveHeaderView.m
| ... | ... | @@ -29,7 +29,6 @@ |
| 29 | 29 | _backgroundImage.contentMode = UIViewContentModeScaleAspectFill; |
| 30 | 30 | _backgroundImage.layer.masksToBounds = YES; |
| 31 | 31 | _backgroundImage.layer.cornerRadius = 2.0; |
| 32 | - _backgroundImage.image = [UIImage imageNamed:@"cnlive_placeholder"]; | |
| 33 | 32 | [self addSubview:_backgroundImage]; |
| 34 | 33 | |
| 35 | 34 | _playImage = [UIButton buttonWithType:UIButtonTypeCustom]; |
| ... | ... | @@ -44,8 +43,6 @@ |
| 44 | 43 | _stateLabel.textColor = [UIColor whiteColor]; |
| 45 | 44 | if ([[NSUserDefaults standardUserDefaults] boolForKey:ISGRAYMODE]) { |
| 46 | 45 | _stateLabel.backgroundColor = [UIColor grayColor]; |
| 47 | - }else if (HOMETITLECOLORSTR){ | |
| 48 | - _stateLabel.backgroundColor = [UIColor colorWithHexString:HOMETITLECOLORSTR]; | |
| 49 | 46 | }else{ |
| 50 | 47 | _stateLabel.backgroundColor = [UIColor redColor]; |
| 51 | 48 | } |
| ... | ... | @@ -63,7 +60,7 @@ |
| 63 | 60 | } |
| 64 | 61 | - (void)setModel:(CNLiveModel *)model{ |
| 65 | 62 | _model = model; |
| 66 | - [_backgroundImage sd_setImageWithURL:[NSURL URLWithString:model.poster] placeholderImage:[UIImage imageNamed:@"cnlive_placeholder"]]; | |
| 63 | + [_backgroundImage sd_setImageWithURL:[NSURL URLWithString:model.poster] placeholderImage:[UIImage imageNamed:@"placeholder"]]; | |
| 67 | 64 | switch ([model.status intValue]) { |
| 68 | 65 | case 0: { |
| 69 | 66 | _stateLabel.text = @"直播准备"; |
| ... | ... | @@ -137,8 +134,8 @@ |
| 137 | 134 | }]; |
| 138 | 135 | |
| 139 | 136 | [_playImage mas_makeConstraints:^(MASConstraintMaker *make) { |
| 140 | - make.centerX.offset(self->_backgroundImage.centerX); | |
| 141 | - make.centerY.offset(self->_backgroundImage.centerY); | |
| 137 | + make.left.equalTo(self->_backgroundImage).offset(5); | |
| 138 | + make.bottom.equalTo(self->_backgroundImage).offset(-5); | |
| 142 | 139 | make.width.offset(40); |
| 143 | 140 | make.height.offset(40); |
| 144 | 141 | ... | ... |
CNLiveScioLive/Pages/Live/View/CNLiveTableViewCell.m
| ... | ... | @@ -88,8 +88,8 @@ |
| 88 | 88 | }]; |
| 89 | 89 | |
| 90 | 90 | [_playImage mas_makeConstraints:^(MASConstraintMaker *make) { |
| 91 | - make.left.equalTo(self->_picImage.mas_left).with.offset((80*MainScale*16/9.0-30)/2.0); | |
| 92 | - make.centerY.offset(self->_picImage.centerY); | |
| 91 | + make.left.equalTo(self->_picImage).offset(5); | |
| 92 | + make.bottom.equalTo(self->_picImage).offset(-5); | |
| 93 | 93 | make.width.offset(30); |
| 94 | 94 | make.height.offset(30); |
| 95 | 95 | ... | ... |
CNLiveScioLive/Pages/Newsound/OldController/VoiceViewController.m
| ... | ... | @@ -173,11 +173,9 @@ static const NSInteger margin = 34; |
| 173 | 173 | |
| 174 | 174 | } |
| 175 | 175 | failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) { |
| 176 | - // 请求失败 | |
| 177 | - [self.tableView.mj_header endRefreshing]; | |
| 178 | - NSLog(@"%@", [error localizedDescription]); | |
| 179 | - [AlertViewTool hideHUDView]; | |
| 180 | - [AlertViewTool showHUDViewText:CustomStr(@"ServerBusy")]; | |
| 176 | + [self.tableView.mj_header endRefreshing]; | |
| 177 | + [AlertViewTool hideHUDView]; | |
| 178 | + [self.tableView.mj_footer setState:MJRefreshStateIdle]; | |
| 181 | 179 | |
| 182 | 180 | }]; |
| 183 | 181 | |
| ... | ... | @@ -681,7 +679,7 @@ static const NSInteger margin = 34; |
| 681 | 679 | [self.view addSubview:self.tableView]; |
| 682 | 680 | |
| 683 | 681 | //设置下拉刷新 |
| 684 | - MJRefreshGifHeader *header = [MJRefreshGifHeader headerWithRefreshingTarget:self refreshingAction:@selector(loadVoice)]; | |
| 682 | + MJRefreshGifHeader *header = [MJRefreshGifHeader headerWithRefreshingTarget:self refreshingAction:@selector(loadVoiceData)]; | |
| 685 | 683 | [header setImages:refreshingImages forState:MJRefreshStateRefreshing]; |
| 686 | 684 | header.lastUpdatedTimeLabel.hidden = YES; |
| 687 | 685 | header.stateLabel.hidden = YES; |
| ... | ... | @@ -708,7 +706,7 @@ static const NSInteger margin = 34; |
| 708 | 706 | [self.view addSubview:self.enTableView]; |
| 709 | 707 | |
| 710 | 708 | //设置下拉刷新 |
| 711 | - MJRefreshGifHeader *engHeader = [MJRefreshGifHeader headerWithRefreshingTarget:self refreshingAction:@selector(loadVOS)]; | |
| 709 | + MJRefreshGifHeader *engHeader = [MJRefreshGifHeader headerWithRefreshingTarget:self refreshingAction:@selector(loadVOSData)]; | |
| 712 | 710 | [engHeader setImages:refreshingImages forState:MJRefreshStateRefreshing]; |
| 713 | 711 | engHeader.lastUpdatedTimeLabel.hidden = YES; |
| 714 | 712 | engHeader.stateLabel.hidden = YES; | ... | ... |
CNLiveScioLive/Pages/Register/Controller/CNLiveRegisterViewController.m
| ... | ... | @@ -20,7 +20,7 @@ |
| 20 | 20 | - (void)getData{ |
| 21 | 21 | NSMutableArray *controllers = [NSMutableArray array]; |
| 22 | 22 | NSArray *titles = @[CustomStr(@"PhoneNumberRegister"), CustomStr(@"EmailRegister")]; |
| 23 | - | |
| 23 | + NSArray *dTitles = @[titles,@[@"",@""]]; | |
| 24 | 24 | for(int i = 0; i < titles.count; i++){ |
| 25 | 25 | |
| 26 | 26 | if(i == 0){ |
| ... | ... | @@ -33,7 +33,7 @@ |
| 33 | 33 | |
| 34 | 34 | } |
| 35 | 35 | if(controllers.count > 0){ |
| 36 | - self.segmentControl.titles = titles; | |
| 36 | + self.segmentControl.titles = dTitles; | |
| 37 | 37 | self.segmentControl.viewControllers = controllers; |
| 38 | 38 | } |
| 39 | 39 | } | ... | ... |
CNLiveScioLive/Pages/Sources/zh-Hans.lproj/Localizable.strings
CNLiveScioLive/Pages/Tools/AlertView/AlertViewTool.m
| ... | ... | @@ -96,11 +96,11 @@ |
| 96 | 96 | |
| 97 | 97 | } |
| 98 | 98 | + (void)showHUDView{ |
| 99 | - [MBProgressHUD showHUDAddedTo:[self getCurrentVC].view animated:YES]; | |
| 99 | + [MBProgressHUD showHUDAddedTo:AppKeyWindow animated:YES]; | |
| 100 | 100 | } |
| 101 | 101 | |
| 102 | 102 | + (void)hideHUDView{ |
| 103 | - [MBProgressHUD hideHUDForView:[self getCurrentVC].view animated:YES]; | |
| 103 | + [MBProgressHUD hideHUDForView:AppKeyWindow animated:YES]; | |
| 104 | 104 | } |
| 105 | 105 | |
| 106 | 106 | + (UIViewController *)getCurrentVC{ | ... | ... |
CNLiveScioLive/Pages/Tools/CNLivePlayer/CNLivePlayerController.m
No preview for this file type
CNLiveScioLive/Pages/Tools/ImageGray/UIColor+CNGray.m
| ... | ... | @@ -34,8 +34,8 @@ static inline NSUInteger hexStrToInt(NSString *str) { |
| 34 | 34 | return result; |
| 35 | 35 | } |
| 36 | 36 | |
| 37 | -static BOOL hexStrToRGBA(NSString *str, | |
| 38 | - CGFloat *r, CGFloat *g, CGFloat *b, CGFloat *a) { | |
| 37 | +static BOOL hexStrToARGB(NSString *str, | |
| 38 | + CGFloat *a, CGFloat *r, CGFloat *g, CGFloat *b) { | |
| 39 | 39 | |
| 40 | 40 | |
| 41 | 41 | str = ({ // Trim blank characters (space and newline) in head and tail. |
| ... | ... | @@ -63,19 +63,23 @@ static BOOL hexStrToRGBA(NSString *str, |
| 63 | 63 | *b = hexStrToInt([str substringWithRange:NSMakeRange(2, 1)]) / 255.0f; |
| 64 | 64 | if (length == 4) *a = hexStrToInt([str substringWithRange:NSMakeRange(3, 1)]) / 255.0f; |
| 65 | 65 | else *a = 1; |
| 66 | - } else { | |
| 66 | + }else if (length == 6){ | |
| 67 | 67 | *r = hexStrToInt([str substringWithRange:NSMakeRange(0, 2)]) / 255.0f; |
| 68 | 68 | *g = hexStrToInt([str substringWithRange:NSMakeRange(2, 2)]) / 255.0f; |
| 69 | 69 | *b = hexStrToInt([str substringWithRange:NSMakeRange(4, 2)]) / 255.0f; |
| 70 | - if (length == 8) *a = hexStrToInt([str substringWithRange:NSMakeRange(6, 2)]) / 255.0f; | |
| 71 | - else *a = 1; | |
| 70 | + } | |
| 71 | + else { | |
| 72 | + *a = hexStrToInt([str substringWithRange:NSMakeRange(0, 2)]) / 255.0f; | |
| 73 | + *r = hexStrToInt([str substringWithRange:NSMakeRange(2, 2)]) / 255.0f; | |
| 74 | + *g = hexStrToInt([str substringWithRange:NSMakeRange(4, 2)]) / 255.0f; | |
| 75 | + *b = hexStrToInt([str substringWithRange:NSMakeRange(6, 2)]) / 255.0f; | |
| 72 | 76 | } |
| 73 | 77 | return YES; |
| 74 | 78 | } |
| 75 | 79 | |
| 76 | 80 | + (instancetype)colorWithHexString:(NSString *)hexStr { |
| 77 | 81 | CGFloat r, g, b, a; |
| 78 | - if (hexStrToRGBA(hexStr, &r, &g, &b, &a)) { | |
| 82 | + if (hexStrToARGB(hexStr, &a, &r, &g, &b)) { | |
| 79 | 83 | return [UIColor colorWithRed:r green:g blue:b alpha:1]; |
| 80 | 84 | } |
| 81 | 85 | return nil; | ... | ... |
CNLiveScioLive/Pages/Tools/ImageGray/UIImage+CNGray.m
| ... | ... | @@ -13,6 +13,9 @@ |
| 13 | 13 | const int RED = 1; |
| 14 | 14 | const int GREEN = 2; |
| 15 | 15 | const int BLUE = 3; |
| 16 | + if (sourceImage.scale>2) { | |
| 17 | + return sourceImage; | |
| 18 | + } | |
| 16 | 19 | CGRect imageRect = CGRectMake(0, 0, sourceImage.size.width *sourceImage.scale, sourceImage.size.height *sourceImage.scale); |
| 17 | 20 | int width = imageRect.size.width; |
| 18 | 21 | int height = imageRect.size.height; | ... | ... |
CNLiveScioLive/Pages/Tools/ImageGray/UIImageView+CNGrayImage.m
| ... | ... | @@ -25,7 +25,7 @@ |
| 25 | 25 | |
| 26 | 26 | /// 图片使用灰白处理 |
| 27 | 27 | BOOL gray = [[NSUserDefaults standardUserDefaults] boolForKey:ISGRAYMODE]; |
| 28 | - if (gray) { | |
| 28 | + if (gray&&[self isMemberOfClass:[UIImageView class]]) { | |
| 29 | 29 | image = [UIImage grayImage:image]; |
| 30 | 30 | } |
| 31 | 31 | [self xmtSwizzledSetImage:image]; | ... | ... |
CNLiveScioLive/Pages/Tools/ImageGray/UILabel+CNGray.h deleted
100644 → 0
CNLiveScioLive/Pages/Tools/ImageGray/UILabel+CNGray.m deleted
100644 → 0
| 1 | -// | |
| 2 | -// UILabel+CNGray.m | |
| 3 | -// CNLiveScioLive | |
| 4 | -// | |
| 5 | -// Created by CNLive on 2021/5/12. | |
| 6 | -// Copyright © 2021 CNLive. All rights reserved. | |
| 7 | -// | |
| 8 | - | |
| 9 | -#import "UILabel+CNGray.h" | |
| 10 | -#import "UIColor+CNGray.h" | |
| 11 | -#import "ZXWKitConst.h" | |
| 12 | - | |
| 13 | -@implementation UILabel (CNGray) | |
| 14 | -+(void)load | |
| 15 | -{ | |
| 16 | - static dispatch_once_t onceToken; | |
| 17 | - dispatch_once(&onceToken, ^{ | |
| 18 | - Method setImage = class_getInstanceMethod(self,@selector(setTextColor:)); | |
| 19 | - Method xmtSwizzledSetImage = class_getInstanceMethod(self,@selector(cn_setTextColor:)); | |
| 20 | - ///交换IMP | |
| 21 | - method_exchangeImplementations(setImage, xmtSwizzledSetImage); | |
| 22 | - }); | |
| 23 | -} | |
| 24 | --(void)cn_setTextColor:(UIColor *)textColor{ | |
| 25 | - if (HOMETITLECOLORSTR) { | |
| 26 | - if (![textColor isEqual:[UIColor whiteColor]]&&![textColor isEqual:segementColor_title_color]) { | |
| 27 | - textColor = [UIColor colorWithHexString:HOMETITLECOLORSTR]; | |
| 28 | - | |
| 29 | - } | |
| 30 | - } | |
| 31 | - [self cn_setTextColor:textColor]; | |
| 32 | -} | |
| 33 | - | |
| 34 | -@end |
CNLiveScioLive/Pages/Tools/ZXWSegmentControl/ZXWSegmentControl.h
CNLiveScioLive/Pages/Tools/ZXWSegmentControl/ZXWSegmentControl.m
| ... | ... | @@ -90,7 +90,12 @@ typedef NS_ENUM(NSInteger, ScrollCtrlViewScrollStatus) { |
| 90 | 90 | if ([subview isKindOfClass:[ZXWSegment class]]) { |
| 91 | 91 | ZXWSegment * segment = (ZXWSegment *)subview; |
| 92 | 92 | segment.titleNormalColor = self.titleNormalColor; |
| 93 | + NSString *textColor = self.textColors[segment.tag - 1995]; | |
| 94 | + if (textColor&&![textColor isEqualToString:@""]) { | |
| 95 | + segment.titleSelectColor = [UIColor colorWithHexString:textColor]; | |
| 96 | + }else{ | |
| 93 | 97 | segment.titleSelectColor = self.titleSelectColor; |
| 98 | + } | |
| 94 | 99 | segment.isTitleScale = self.isTitleScale; |
| 95 | 100 | } |
| 96 | 101 | } |
| ... | ... | @@ -204,18 +209,18 @@ typedef NS_ENUM(NSInteger, ScrollCtrlViewScrollStatus) { |
| 204 | 209 | #pragma mark - Custom Accessors |
| 205 | 210 | |
| 206 | 211 | - (void)setTitles:(NSArray *)titles { |
| 207 | - _titles = titles; | |
| 208 | - | |
| 212 | + _titles = titles[0]; | |
| 213 | + _textColors = titles[1]; | |
| 209 | 214 | // Item的宽度 |
| 210 | 215 | CGFloat itemW = 0.0; |
| 211 | 216 | CGFloat itemX = 0.0; |
| 212 | - for (int i = 0; i < titles.count; i ++) { | |
| 217 | + for (int i = 0; i < _titles.count; i ++) { | |
| 213 | 218 | // 判断是滑动还是静止标题栏 |
| 214 | 219 | if (self.isScrollTitle == YES) { |
| 215 | 220 | // 滑动标题栏 |
| 216 | 221 | |
| 217 | 222 | // 计算文本标签的Size |
| 218 | - CGSize labelSize = [self sizeWithText:titles[i] font:segementTitleNormalFont maxSize:CGSizeMake(ZXWkScreen_width, self.height)]; | |
| 223 | + CGSize labelSize = [self sizeWithText:_titles[i] font:segementTitleNormalFont maxSize:CGSizeMake(ZXWkScreen_width, self.height)]; | |
| 219 | 224 | // 计算Item的宽度 Item的宽度 = 本标签的宽度 + 间距 |
| 220 | 225 | itemW = labelSize.width + ZXWSegementViewTitlePadding / 2; |
| 221 | 226 | // 设置contentSize |
| ... | ... | @@ -225,17 +230,21 @@ typedef NS_ENUM(NSInteger, ScrollCtrlViewScrollStatus) { |
| 225 | 230 | // 静止标题栏 |
| 226 | 231 | |
| 227 | 232 | // Item的宽度 |
| 228 | - itemW = ZXWkScreen_width / titles.count; | |
| 233 | + itemW = ZXWkScreen_width / _titles.count; | |
| 229 | 234 | // Item的x值 |
| 230 | 235 | itemX = i * itemW; |
| 231 | 236 | // 设置contentSize |
| 232 | 237 | self.segementScrollView.contentSize = CGSizeMake(ZXWkScreen_width, 0); |
| 233 | 238 | } |
| 234 | 239 | ZXWSegment * segment = [[ZXWSegment alloc] initWithFrame:CGRectMake(itemX, 0, itemW, self.height)]; |
| 235 | - segment.title = titles[i]; | |
| 240 | + segment.title = _titles[i]; | |
| 236 | 241 | segment.titleNormalColor = self.titleNormalColor; |
| 242 | + NSString *textColor = _textColors[i]; | |
| 243 | + if (textColor&&![textColor isEqualToString:@""]) { | |
| 244 | + segment.titleSelectColor = [UIColor colorWithHexString:textColor]; | |
| 245 | + }else{ | |
| 237 | 246 | segment.titleSelectColor = self.titleSelectColor; |
| 238 | - | |
| 247 | + } | |
| 239 | 248 | segment.titleSelectBold = YES; |
| 240 | 249 | segment.tag = 1995 + i; |
| 241 | 250 | [segment addTarget:self action:@selector(itemAction:) forControlEvents:UIControlEventTouchUpInside]; | ... | ... |