Commit 98341c7862c1332b1c4f830419b1fa67fb65181a

Authored by 朱林
2 parents a7c4531e cc77629c

Merge branch 'master' of bj.gitlab.cnlive.com:ios-team/LiveVideoCloud

Showing 33 changed files with 223 additions and 29 deletions
LiveVideoCloud.xcodeproj/project.pbxproj
... ... @@ -258,7 +258,6 @@
258 258 D2EBC8711F02108000F198FB /* LiveListService.m in Sources */ = {isa = PBXBuildFile; fileRef = D2EBC8661F02108000F198FB /* LiveListService.m */; };
259 259 D2EBC8721F02108000F198FB /* LVCLiveActivityInfoService.m in Sources */ = {isa = PBXBuildFile; fileRef = D2EBC8681F02108000F198FB /* LVCLiveActivityInfoService.m */; };
260 260 D2EBC8741F02108000F198FB /* LVCUGCLiveListController.m in Sources */ = {isa = PBXBuildFile; fileRef = D2EBC86C1F02108000F198FB /* LVCUGCLiveListController.m */; };
261   - D2EBC8751F02108000F198FB /* LVCUGCLiveListView.m in Sources */ = {isa = PBXBuildFile; fileRef = D2EBC86E1F02108000F198FB /* LVCUGCLiveListView.m */; };
262 261 D2EBC8761F02108000F198FB /* LVCUGCLivePlayerController.m in Sources */ = {isa = PBXBuildFile; fileRef = D2EBC8701F02108000F198FB /* LVCUGCLivePlayerController.m */; };
263 262 D2EBC87B1F02108F00F198FB /* LVCUGCLiveListModel.m in Sources */ = {isa = PBXBuildFile; fileRef = D2EBC8781F02108F00F198FB /* LVCUGCLiveListModel.m */; };
264 263 D2EBC87C1F02108F00F198FB /* LVCUGCLivePlayerModel.m in Sources */ = {isa = PBXBuildFile; fileRef = D2EBC87A1F02108F00F198FB /* LVCUGCLivePlayerModel.m */; };
... ... @@ -266,6 +265,8 @@
266 265 D2EBC8841F02109C00F198FB /* LVCUGCLivePlayerCell.m in Sources */ = {isa = PBXBuildFile; fileRef = D2EBC8801F02109C00F198FB /* LVCUGCLivePlayerCell.m */; };
267 266 D2EBC8851F02109C00F198FB /* LVCUGCPlayerLoadingView.m in Sources */ = {isa = PBXBuildFile; fileRef = D2EBC8821F02109C00F198FB /* LVCUGCPlayerLoadingView.m */; };
268 267 D2EBC8881F0225D900F198FB /* LVCVodPlayerListController.m in Sources */ = {isa = PBXBuildFile; fileRef = D2EBC8871F0225D900F198FB /* LVCVodPlayerListController.m */; };
  268 + D2EBC88B1F02361600F198FB /* LVCUGCLiveListView.m in Sources */ = {isa = PBXBuildFile; fileRef = D2EBC88A1F02361600F198FB /* LVCUGCLiveListView.m */; };
  269 + D2EBC88E1F023AA400F198FB /* LVCVodPlayerController.m in Sources */ = {isa = PBXBuildFile; fileRef = D2EBC88D1F023AA400F198FB /* LVCVodPlayerController.m */; };
269 270 /* End PBXBuildFile section */
270 271  
271 272 /* Begin PBXContainerItemProxy section */
... ... @@ -810,8 +811,6 @@
810 811 D2EBC8681F02108000F198FB /* LVCLiveActivityInfoService.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LVCLiveActivityInfoService.m; sourceTree = "<group>"; };
811 812 D2EBC86B1F02108000F198FB /* LVCUGCLiveListController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LVCUGCLiveListController.h; sourceTree = "<group>"; };
812 813 D2EBC86C1F02108000F198FB /* LVCUGCLiveListController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LVCUGCLiveListController.m; sourceTree = "<group>"; };
813   - D2EBC86D1F02108000F198FB /* LVCUGCLiveListView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LVCUGCLiveListView.h; sourceTree = "<group>"; };
814   - D2EBC86E1F02108000F198FB /* LVCUGCLiveListView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LVCUGCLiveListView.m; sourceTree = "<group>"; };
815 814 D2EBC86F1F02108000F198FB /* LVCUGCLivePlayerController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LVCUGCLivePlayerController.h; sourceTree = "<group>"; };
816 815 D2EBC8701F02108000F198FB /* LVCUGCLivePlayerController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LVCUGCLivePlayerController.m; sourceTree = "<group>"; };
817 816 D2EBC8771F02108F00F198FB /* LVCUGCLiveListModel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LVCUGCLiveListModel.h; sourceTree = "<group>"; };
... ... @@ -826,6 +825,10 @@
826 825 D2EBC8821F02109C00F198FB /* LVCUGCPlayerLoadingView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LVCUGCPlayerLoadingView.m; sourceTree = "<group>"; };
827 826 D2EBC8861F0225D900F198FB /* LVCVodPlayerListController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LVCVodPlayerListController.h; sourceTree = "<group>"; };
828 827 D2EBC8871F0225D900F198FB /* LVCVodPlayerListController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LVCVodPlayerListController.m; sourceTree = "<group>"; };
  828 + D2EBC8891F02361600F198FB /* LVCUGCLiveListView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LVCUGCLiveListView.h; sourceTree = "<group>"; };
  829 + D2EBC88A1F02361600F198FB /* LVCUGCLiveListView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LVCUGCLiveListView.m; sourceTree = "<group>"; };
  830 + D2EBC88C1F023AA400F198FB /* LVCVodPlayerController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LVCVodPlayerController.h; sourceTree = "<group>"; };
  831 + D2EBC88D1F023AA400F198FB /* LVCVodPlayerController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LVCVodPlayerController.m; sourceTree = "<group>"; };
829 832 /* End PBXFileReference section */
830 833  
831 834 /* Begin PBXFrameworksBuildPhase section */
... ... @@ -2131,6 +2134,8 @@
2131 2134 children = (
2132 2135 D2EBC8861F0225D900F198FB /* LVCVodPlayerListController.h */,
2133 2136 D2EBC8871F0225D900F198FB /* LVCVodPlayerListController.m */,
  2137 + D2EBC88C1F023AA400F198FB /* LVCVodPlayerController.h */,
  2138 + D2EBC88D1F023AA400F198FB /* LVCVodPlayerController.m */,
2134 2139 );
2135 2140 path = Controller;
2136 2141 sourceTree = "<group>";
... ... @@ -2170,16 +2175,14 @@
2170 2175 D2EBC85F1F020F3C00F198FB /* Controller */ = {
2171 2176 isa = PBXGroup;
2172 2177 children = (
2173   - D2EBC8651F02108000F198FB /* LiveListService.h */,
2174   - D2EBC8661F02108000F198FB /* LiveListService.m */,
2175   - D2EBC8671F02108000F198FB /* LVCLiveActivityInfoService.h */,
2176   - D2EBC8681F02108000F198FB /* LVCLiveActivityInfoService.m */,
2177 2178 D2EBC86B1F02108000F198FB /* LVCUGCLiveListController.h */,
2178 2179 D2EBC86C1F02108000F198FB /* LVCUGCLiveListController.m */,
2179   - D2EBC86D1F02108000F198FB /* LVCUGCLiveListView.h */,
2180   - D2EBC86E1F02108000F198FB /* LVCUGCLiveListView.m */,
2181 2180 D2EBC86F1F02108000F198FB /* LVCUGCLivePlayerController.h */,
2182 2181 D2EBC8701F02108000F198FB /* LVCUGCLivePlayerController.m */,
  2182 + D2EBC8651F02108000F198FB /* LiveListService.h */,
  2183 + D2EBC8661F02108000F198FB /* LiveListService.m */,
  2184 + D2EBC8671F02108000F198FB /* LVCLiveActivityInfoService.h */,
  2185 + D2EBC8681F02108000F198FB /* LVCLiveActivityInfoService.m */,
2183 2186 );
2184 2187 path = Controller;
2185 2188 sourceTree = "<group>";
... ... @@ -2198,6 +2201,8 @@
2198 2201 D2EBC8611F020F3C00F198FB /* View */ = {
2199 2202 isa = PBXGroup;
2200 2203 children = (
  2204 + D2EBC8891F02361600F198FB /* LVCUGCLiveListView.h */,
  2205 + D2EBC88A1F02361600F198FB /* LVCUGCLiveListView.m */,
2201 2206 D2EBC87D1F02109C00F198FB /* LVCUGCBackgroundView.h */,
2202 2207 D2EBC87E1F02109C00F198FB /* LVCUGCBackgroundView.m */,
2203 2208 D2EBC87F1F02109C00F198FB /* LVCUGCLivePlayerCell.h */,
... ... @@ -2447,6 +2452,7 @@
2447 2452 D2575C4A1E7685DE00E3A8FC /* UIView+Bubbling.m in Sources */,
2448 2453 D2EBC8571F01FF9200F198FB /* LVCCommentModel.m in Sources */,
2449 2454 D23BBDB81EF8D15D002FE0B8 /* LVCMainHeaderCollectionReusableView.m in Sources */,
  2455 + D2EBC88B1F02361600F198FB /* LVCUGCLiveListView.m in Sources */,
2450 2456 D2029CA61E6EADE10027CD92 /* MJRefreshHeader.m in Sources */,
2451 2457 D2029CC41E6EADE10027CD92 /* UIImageView+WebCache.m in Sources */,
2452 2458 4B45CE801EB86A590079AFB7 /* idAndPwdView.m in Sources */,
... ... @@ -2465,6 +2471,7 @@
2465 2471 D2029C961E6EADE10027CD92 /* MBProgressHUD.m in Sources */,
2466 2472 D24F40921EFB727000833738 /* JBAutoRollTableView.m in Sources */,
2467 2473 810B65071E779B1F00133E15 /* ViewController+MASAdditions.m in Sources */,
  2474 + D2EBC88E1F023AA400F198FB /* LVCVodPlayerController.m in Sources */,
2468 2475 D2029C9A1E6EADE10027CD92 /* MJProperty.m in Sources */,
2469 2476 4BD856031EBACD530082061D /* AFNetworkActivityIndicatorManager.m in Sources */,
2470 2477 4BD855CD1EBAC4B70082061D /* CNLiveKeychainWrapper.m in Sources */,
... ... @@ -2566,7 +2573,6 @@
2566 2573 D24CFC201EFA092300AA6ADB /* JBBannerView.m in Sources */,
2567 2574 D2029CBD1E6EADE10027CD92 /* SDWebImageManager.m in Sources */,
2568 2575 D2029CB41E6EADE10027CD92 /* UIView+MJExtension.m in Sources */,
2569   - D2EBC8751F02108000F198FB /* LVCUGCLiveListView.m in Sources */,
2570 2576 81FB5B3C1E7A6FFC00F98E1D /* SevenSwitch.m in Sources */,
2571 2577 D2EBC8761F02108000F198FB /* LVCUGCLivePlayerController.m in Sources */,
2572 2578 D2029CA91E6EADE10027CD92 /* MJRefreshAutoStateFooter.m in Sources */,
... ...
LiveVideoCloud.xcodeproj/xcuserdata/cnlive.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist
... ... @@ -2,4 +2,54 @@
2 2 <Bucket
3 3 type = "1"
4 4 version = "2.0">
  5 + <Breakpoints>
  6 + <BreakpointProxy
  7 + BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
  8 + <BreakpointContent
  9 + shouldBeEnabled = "Yes"
  10 + ignoreCount = "0"
  11 + continueAfterRunningActions = "No"
  12 + filePath = "LiveVideoCloud/Classes/Sections/Mine/Controllers/FeedbackViewController.m"
  13 + timestampString = "520237865.304262"
  14 + startingColumnNumber = "9223372036854775807"
  15 + endingColumnNumber = "9223372036854775807"
  16 + startingLineNumber = "33"
  17 + endingLineNumber = "33"
  18 + landmarkName = "-viewDidLoad"
  19 + landmarkType = "7">
  20 + </BreakpointContent>
  21 + </BreakpointProxy>
  22 + <BreakpointProxy
  23 + BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
  24 + <BreakpointContent
  25 + shouldBeEnabled = "Yes"
  26 + ignoreCount = "0"
  27 + continueAfterRunningActions = "No"
  28 + filePath = "LiveVideoCloud/Classes/Sections/Mine/Controllers/FeedbackViewController.m"
  29 + timestampString = "520237929.578646"
  30 + startingColumnNumber = "9223372036854775807"
  31 + endingColumnNumber = "9223372036854775807"
  32 + startingLineNumber = "143"
  33 + endingLineNumber = "143"
  34 + landmarkName = "-request"
  35 + landmarkType = "7">
  36 + </BreakpointContent>
  37 + </BreakpointProxy>
  38 + <BreakpointProxy
  39 + BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
  40 + <BreakpointContent
  41 + shouldBeEnabled = "Yes"
  42 + ignoreCount = "0"
  43 + continueAfterRunningActions = "No"
  44 + filePath = "LiveVideoCloud/Classes/Sections/Mine/Controllers/FeedbackViewController.m"
  45 + timestampString = "520237933.08285"
  46 + startingColumnNumber = "9223372036854775807"
  47 + endingColumnNumber = "9223372036854775807"
  48 + startingLineNumber = "126"
  49 + endingLineNumber = "126"
  50 + landmarkName = "-request"
  51 + landmarkType = "7">
  52 + </BreakpointContent>
  53 + </BreakpointProxy>
  54 + </Breakpoints>
5 55 </Bucket>
... ...
LiveVideoCloud/Classes/Sections/PGCSections/View/LVCTelevisionCell.h
... ... @@ -12,5 +12,6 @@
12 12 @interface LVCTelevisionCell : UITableViewCell
13 13  
14 14 @property (nonatomic, strong) LVCTelevisionModel *model;
  15 +@property (nonatomic, strong) ProgramModel *programModel;
15 16  
16 17 @end
... ...
LiveVideoCloud/Classes/Sections/PGCSections/View/LVCTelevisionCell.m
... ... @@ -35,6 +35,12 @@
35 35  
36 36 }
37 37  
  38 +- (void)setProgramModel:(ProgramModel *)programModel {
  39 +
  40 + [_imgView sd_setImageWithURL:[NSURL URLWithString:programModel.img] placeholderImage:[UIImage imageNamed:@"load_03"]];
  41 + _titleLab.text = programModel.title;
  42 +}
  43 +
38 44 #pragma mark -
39 45 #pragma mark - getter
40 46 - (UIImageView *)imgView
... ...
LiveVideoCloud/Classes/Sections/UGCSections/Controller/LVCUGCLiveListView.h renamed to LiveVideoCloud/Classes/Sections/UGCSections/View/LVCUGCLiveListView.h
LiveVideoCloud/Classes/Sections/UGCSections/Controller/LVCUGCLiveListView.m renamed to LiveVideoCloud/Classes/Sections/UGCSections/View/LVCUGCLiveListView.m
LiveVideoCloud/Classes/Sections/homeSections/Controller/LVCVodPlayerController.h 0 → 100644
  1 +//
  2 +// LVCVodPlayerController.h
  3 +// LiveVideoCloud
  4 +//
  5 +// Created by cnliveJunBo on 17/6/27.
  6 +// Copyright © 2017年 cnlive. All rights reserved.
  7 +//
  8 +
  9 +#import "BaseViewController.h"
  10 +
  11 +@interface LVCVodPlayerController : BaseViewController
  12 +
  13 +@end
... ...
LiveVideoCloud/Classes/Sections/homeSections/Controller/LVCVodPlayerController.m 0 → 100644
  1 +//
  2 +// LVCVodPlayerController.m
  3 +// LiveVideoCloud
  4 +//
  5 +// Created by cnliveJunBo on 17/6/27.
  6 +// Copyright © 2017年 cnlive. All rights reserved.
  7 +//
  8 +
  9 +#import "LVCVodPlayerController.h"
  10 +
  11 +@interface LVCVodPlayerController ()
  12 +
  13 +@end
  14 +
  15 +@implementation LVCVodPlayerController
  16 +
  17 +- (void)viewDidLoad {
  18 + [super viewDidLoad];
  19 +
  20 + self.view.backgroundColor = [UIColor whiteColor];
  21 +}
  22 +
  23 +- (void)didReceiveMemoryWarning {
  24 + [super didReceiveMemoryWarning];
  25 + // Dispose of any resources that can be recreated.
  26 +}
  27 +
  28 +@end
... ...
LiveVideoCloud/Classes/Sections/homeSections/Controller/LVCVodPlayerListController.h
... ... @@ -10,4 +10,8 @@
10 10  
11 11 @interface LVCVodPlayerListController : UIViewController
12 12  
  13 +@property (nonatomic, assign)BOOL scrollToTop;
  14 +
  15 +- (void)isNeedToRefresh;
  16 +
13 17 @end
... ...
LiveVideoCloud/Classes/Sections/homeSections/Controller/LVCVodPlayerListController.m
... ... @@ -7,16 +7,21 @@
7 7 //
8 8  
9 9 #import "LVCVodPlayerListController.h"
  10 +#import "LVCTelevisionCell.h"
  11 +#import "LVCRequestFailedView.h"
  12 +#import "LVCVodPlayerController.h"
10 13  
11 14 static NSString *vodCellId = @"vodCellId";
12 15  
13   -@interface LVCVodPlayerListController ()<UITableViewDelegate, UITableViewDataSource> {
  16 +@interface LVCVodPlayerListController ()<UITableViewDelegate, UITableViewDataSource, LVCRequestFailedViewDelegate> {
14 17  
15 18 AFHTTPRequestOperation *_operation;
16 19 NSMutableArray *_programArrayM;
  20 + long long _timestamp;
17 21 }
18 22  
19 23 @property (nonatomic, strong)UITableView *tableView;
  24 +@property (nonatomic, strong) LVCRequestFailedView *failedView; //请求失败提示view
20 25  
21 26 @end
22 27  
... ... @@ -28,10 +33,18 @@ static NSString *vodCellId = @&quot;vodCellId&quot;;
28 33 self.navigationItem.title = @"点播";
29 34 self.view.backgroundColor = [UIColor whiteColor];
30 35 _programArrayM = [[NSMutableArray alloc] init];
  36 +
  37 + [self.tableView addSubview:self.failedView];
  38 + [self.view addSubview:self.tableView];
  39 +
  40 + _timestamp = [[self timestamp] longLongValue];
  41 + [self.tableView.header beginRefreshing];
31 42 }
32 43  
33 44 - (void)requestVodPlayerList {
34 45  
  46 + _failedView.hidden = YES;
  47 +
35 48 NSString *uid;
36 49 if ([UserTools isLogin]) {
37 50 uid = [UserInformationModel manager].uid;
... ... @@ -64,15 +77,33 @@ static NSString *vodCellId = @&quot;vodCellId&quot;;
64 77 }
65 78 }
66 79 }
  80 + _timestamp = [[self timestamp] longLongValue];
  81 + [self.tableView.header endRefreshing];
67 82 [self.tableView reloadData];
68 83  
69 84 } failure:^(AFHTTPRequestOperation *operation, NSError *error) {
70 85  
71 86 NSLog(@"点播列表请求失败!");
  87 + _timestamp = [[self timestamp] longLongValue];
  88 + [self.tableView.header endRefreshing];
  89 + if (_programArrayM.count == 0) {
  90 + _failedView.hidden = NO;
  91 + }
72 92 }];
73 93 }
74 94  
75 95 #pragma mark - UITableViewDelegate !!!!!!!!!!!!!!!!!!!!!!!!
  96 +- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
  97 +
  98 + [tableView deselectRowAtIndexPath:indexPath animated:NO];
  99 +
  100 + LVCVodPlayerController *vc = [[LVCVodPlayerController alloc] init];
  101 + [self.navigationController pushViewController:vc animated:YES];
  102 +}
  103 +
  104 +- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
  105 + return SCREEN_WIDTH*9/16+40;
  106 +}
76 107  
77 108 #pragma mark - UITableViewDataSource !!!!!!!!!!!!!!!!!!!!!!!!
78 109 - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
... ... @@ -81,27 +112,82 @@ static NSString *vodCellId = @&quot;vodCellId&quot;;
81 112  
82 113 - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
83 114  
84   - return nil;
  115 + LVCTelevisionCell *cell = [tableView dequeueReusableCellWithIdentifier:vodCellId forIndexPath:indexPath];
  116 +
  117 + cell.programModel = _programArrayM[indexPath.row];
  118 + return cell;
  119 +}
  120 +
  121 +#pragma mark - LVCRequestFailedViewDelegate
  122 +- (void)reloadDataWithView:(LVCRequestFailedView *)view
  123 +{
  124 + [self.tableView.header beginRefreshing];
  125 + [self requestVodPlayerList];
85 126 }
86 127  
87 128 #pragma mark - GetMethod !!!!!!!!!!!!!!!!!!!!!!!!!!!!
88 129 - (UITableView *)tableView {
89 130  
90 131 if (!_tableView) {
91   - _tableView = [[UITableView alloc] initWithFrame:self.view.bounds style:UITableViewStylePlain];
  132 + _tableView = [[UITableView alloc] initWithFrame:CGRectMake(0, 0, self.view.bounds.size.width, self.view.bounds.size.height - 50) style:UITableViewStylePlain];
92 133 _tableView.dataSource = self;
93 134 _tableView.delegate = self;
94 135 _tableView.separatorStyle = UITableViewCellSeparatorStyleNone;
  136 + _tableView.showsHorizontalScrollIndicator = NO;
  137 + _tableView.scrollsToTop = YES;
  138 + _tableView.header = [MJRefreshNormalHeader headerWithRefreshingTarget:self refreshingAction:@selector(refresh)];
95 139  
96   - UIView *view = [[UIView alloc] initWithFrame:CGRectMake(0, -KScreenHeight, KScreenWidth, KScreenHeight)];
97   - view.backgroundColor = [UIColor backgroundColor];
98   - [_tableView addSubview:view];
99   -
100   - [_tableView registerClass:[UITableViewCell class] forCellReuseIdentifier:vodCellId];
  140 + [_tableView registerClass:[LVCTelevisionCell class] forCellReuseIdentifier:vodCellId];
101 141 }
102 142 return _tableView;
103 143 }
104 144  
  145 +- (LVCRequestFailedView *)failedView
  146 +{
  147 + if (!_failedView) {
  148 + _failedView = [[LVCRequestFailedView alloc] initWithFrame:CGRectMake(0, 0, 150, 100) words:@"您的网络不太顺畅哦~"];
  149 + _failedView.center = self.tableView.center;
  150 + _failedView.delegate = self;
  151 + _failedView.hidden = YES;
  152 + }
  153 + return _failedView;
  154 +}
  155 +
  156 +#pragma mark - Action !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  157 +- (void)refresh {
  158 +
  159 + [self requestVodPlayerList];
  160 +}
  161 +
  162 +- (NSString *)timestamp {
  163 +
  164 + NSString *stamp = @"";
  165 +
  166 + stamp = [NSString stringWithFormat:@"%.3f", [[NSDate date] timeIntervalSince1970]];
  167 + stamp = [stamp stringByReplacingOccurrencesOfString:@"." withString:@""];
  168 +
  169 + return stamp;
  170 +}
  171 +
  172 +- (void)autoRefresh {
  173 +
  174 + [self requestVodPlayerList];
  175 +}
  176 +
  177 +- (void)isNeedToRefresh {
  178 +
  179 + long long timestamp = [[self timestamp] longLongValue];
  180 + if (timestamp-_timestamp > 180000) {
  181 + [self.tableView.header beginRefreshing];
  182 + }
  183 +}
  184 +
  185 +- (void)setScrollToTop:(BOOL)scrollToTop {
  186 +
  187 + _scrollToTop = scrollToTop;
  188 + self.tableView.scrollsToTop = scrollToTop;
  189 +}
  190 +
105 191 #pragma mark ------------------------------ 分割线 ----------------------------------------------
106 192 - (NSDictionary *)addParameters:(NSDictionary *)dict {
107 193  
... ...
LiveVideoCloud/animation.xcassets/AppIcon.appiconset/Contents.json
... ... @@ -3,67 +3,67 @@
3 3 {
4 4 "size" : "20x20",
5 5 "idiom" : "iphone",
6   - "filename" : "ic_launcher40.png",
  6 + "filename" : "web_hi_res40.png",
7 7 "scale" : "2x"
8 8 },
9 9 {
10 10 "size" : "20x20",
11 11 "idiom" : "iphone",
12   - "filename" : "ic_launcher60.png",
  12 + "filename" : "web_hi_res60.png",
13 13 "scale" : "3x"
14 14 },
15 15 {
16 16 "size" : "29x29",
17 17 "idiom" : "iphone",
18   - "filename" : "ic_launcher29.png",
  18 + "filename" : "web_hi_res29.png",
19 19 "scale" : "1x"
20 20 },
21 21 {
22 22 "size" : "29x29",
23 23 "idiom" : "iphone",
24   - "filename" : "ic_launcher58.png",
  24 + "filename" : "web_hi_res58.png",
25 25 "scale" : "2x"
26 26 },
27 27 {
28 28 "size" : "29x29",
29 29 "idiom" : "iphone",
30   - "filename" : "ic_launcher87.png",
  30 + "filename" : "web_hi_res87.png",
31 31 "scale" : "3x"
32 32 },
33 33 {
34 34 "size" : "40x40",
35 35 "idiom" : "iphone",
36   - "filename" : "ic_launcher80.png",
  36 + "filename" : "web_hi_res80.png",
37 37 "scale" : "2x"
38 38 },
39 39 {
40 40 "size" : "40x40",
41 41 "idiom" : "iphone",
42   - "filename" : "ic_launcher120-1.png",
  42 + "filename" : "web_hi_res120-1.png",
43 43 "scale" : "3x"
44 44 },
45 45 {
46 46 "size" : "57x57",
47 47 "idiom" : "iphone",
48   - "filename" : "ic_launcher57.png",
  48 + "filename" : "web_hi_res57.png",
49 49 "scale" : "1x"
50 50 },
51 51 {
52 52 "size" : "57x57",
53 53 "idiom" : "iphone",
54   - "filename" : "ic_launcher114.png",
  54 + "filename" : "web_hi_res114.png",
55 55 "scale" : "2x"
56 56 },
57 57 {
58 58 "size" : "60x60",
59 59 "idiom" : "iphone",
60   - "filename" : "ic_launcher120.png",
  60 + "filename" : "web_hi_res120png.png",
61 61 "scale" : "2x"
62 62 },
63 63 {
64 64 "size" : "60x60",
65 65 "idiom" : "iphone",
66   - "filename" : "ic_launcher180.png",
  66 + "filename" : "web_hi_res180.png",
67 67 "scale" : "3x"
68 68 }
69 69 ],
... ...
LiveVideoCloud/animation.xcassets/AppIcon.appiconset/ic_launcher114.png deleted 100644 → 0

4.69 KB

LiveVideoCloud/animation.xcassets/AppIcon.appiconset/ic_launcher120-1.png deleted 100644 → 0

5.17 KB

LiveVideoCloud/animation.xcassets/AppIcon.appiconset/ic_launcher120.png deleted 100644 → 0

5.17 KB

LiveVideoCloud/animation.xcassets/AppIcon.appiconset/ic_launcher180.png deleted 100644 → 0

9.3 KB

LiveVideoCloud/animation.xcassets/AppIcon.appiconset/ic_launcher29.png deleted 100644 → 0

1.38 KB

LiveVideoCloud/animation.xcassets/AppIcon.appiconset/ic_launcher40.png deleted 100644 → 0

1.79 KB

LiveVideoCloud/animation.xcassets/AppIcon.appiconset/ic_launcher57.png deleted 100644 → 0

2.62 KB

LiveVideoCloud/animation.xcassets/AppIcon.appiconset/ic_launcher58.png deleted 100644 → 0

2.75 KB

LiveVideoCloud/animation.xcassets/AppIcon.appiconset/ic_launcher60.png deleted 100644 → 0

2.6 KB

LiveVideoCloud/animation.xcassets/AppIcon.appiconset/ic_launcher80.png deleted 100644 → 0

3.42 KB

LiveVideoCloud/animation.xcassets/AppIcon.appiconset/ic_launcher87.png deleted 100644 → 0

3.6 KB

LiveVideoCloud/animation.xcassets/AppIcon.appiconset/web_hi_res114.png 0 → 100644

5.55 KB

LiveVideoCloud/animation.xcassets/AppIcon.appiconset/web_hi_res120-1.png 0 → 100644

5.95 KB

LiveVideoCloud/animation.xcassets/AppIcon.appiconset/web_hi_res120png.png 0 → 100644

5.95 KB

LiveVideoCloud/animation.xcassets/AppIcon.appiconset/web_hi_res180.png 0 → 100644

9.95 KB

LiveVideoCloud/animation.xcassets/AppIcon.appiconset/web_hi_res29.png 0 → 100644

1.51 KB

LiveVideoCloud/animation.xcassets/AppIcon.appiconset/web_hi_res40.png 0 → 100644

2.1 KB

LiveVideoCloud/animation.xcassets/AppIcon.appiconset/web_hi_res57.png 0 → 100644

2.73 KB

LiveVideoCloud/animation.xcassets/AppIcon.appiconset/web_hi_res58.png 0 → 100644

2.91 KB

LiveVideoCloud/animation.xcassets/AppIcon.appiconset/web_hi_res60.png 0 → 100644

2.91 KB

LiveVideoCloud/animation.xcassets/AppIcon.appiconset/web_hi_res80.png 0 → 100644

3.96 KB

LiveVideoCloud/animation.xcassets/AppIcon.appiconset/web_hi_res87.png 0 → 100644

4.46 KB