Commit c0cf25a898f7530da442d881653391ca6ba3b968

Authored by 张旭
2 parents 71638ae0 2257d52b

Merge branch 'master' of bj.gitlab.cnlive.com:ios-team/ScioLive into App-Store配置

CNLiveScioLive.xcodeproj/project.pbxproj
... ... @@ -1699,22 +1699,22 @@
1699 1699 085D85FA2159C72F0037D480 /* Classes */ = {
1700 1700 isa = PBXGroup;
1701 1701 children = (
  1702 + 085D85FF2159C72F0037D480 /* ZXVideoPlayerController.h */,
  1703 + 085D86072159C72F0037D480 /* ZXVideoPlayerController.m */,
  1704 + 085D86002159C72F0037D480 /* ZXVideoPlayerControlView.h */,
  1705 + 085D86062159C72F0037D480 /* ZXVideoPlayerControlView.m */,
1702 1706 085D86942159C8110037D480 /* JGMusicManager.h */,
1703 1707 085D86932159C8100037D480 /* JGMusicManager.m */,
1704   - 085D85FB2159C72F0037D480 /* ZXVideo.m */,
1705   - 085D85FC2159C72F0037D480 /* ZXVideoPlayerTimeIndicatorView.h */,
1706 1708 085D85FD2159C72F0037D480 /* ZXVideoPlayerVolumeView.h */,
  1709 + 085D86042159C72F0037D480 /* ZXVideo.h */,
  1710 + 085D85FB2159C72F0037D480 /* ZXVideo.m */,
1707 1711 085D85FE2159C72F0037D480 /* ZXVideoPlayerBrightnessView.h */,
1708   - 085D85FF2159C72F0037D480 /* ZXVideoPlayerController.h */,
1709   - 085D86002159C72F0037D480 /* ZXVideoPlayerControlView.h */,
1710   - 085D86012159C72F0037D480 /* ZXVideoPlayerBatteryView.m */,
  1712 + 085D86052159C72F0037D480 /* ZXVideoPlayerBrightnessView.m */,
1711 1713 085D86022159C72F0037D480 /* ZXVideoPlayerVolumeView.m */,
  1714 + 085D85FC2159C72F0037D480 /* ZXVideoPlayerTimeIndicatorView.h */,
1712 1715 085D86032159C72F0037D480 /* ZXVideoPlayerTimeIndicatorView.m */,
1713   - 085D86042159C72F0037D480 /* ZXVideo.h */,
1714   - 085D86052159C72F0037D480 /* ZXVideoPlayerBrightnessView.m */,
1715   - 085D86062159C72F0037D480 /* ZXVideoPlayerControlView.m */,
1716   - 085D86072159C72F0037D480 /* ZXVideoPlayerController.m */,
1717 1716 085D86082159C72F0037D480 /* ZXVideoPlayerBatteryView.h */,
  1717 + 085D86012159C72F0037D480 /* ZXVideoPlayerBatteryView.m */,
1718 1718 );
1719 1719 path = Classes;
1720 1720 sourceTree = "<group>";
... ... @@ -1757,8 +1757,8 @@
1757 1757 085D86982159CBBB0037D480 /* CNLivePlayer */ = {
1758 1758 isa = PBXGroup;
1759 1759 children = (
1760   - 085D86992159CBBB0037D480 /* CNLivePlayerController.m */,
1761 1760 085D869A2159CBBB0037D480 /* CNLivePlayerController.h */,
  1761 + 085D86992159CBBB0037D480 /* CNLivePlayerController.m */,
1762 1762 );
1763 1763 path = CNLivePlayer;
1764 1764 sourceTree = "<group>";
... ...
CNLiveScioLive/Assets.xcassets/live/cnlive_live_share.imageset/Contents.json 0 → 100644
  1 +{
  2 + "images" : [
  3 + {
  4 + "idiom" : "universal",
  5 + "scale" : "1x"
  6 + },
  7 + {
  8 + "idiom" : "universal",
  9 + "filename" : "cnlive_live_share@2x.png",
  10 + "scale" : "2x"
  11 + },
  12 + {
  13 + "idiom" : "universal",
  14 + "filename" : "cnlive_live_share@3x.png",
  15 + "scale" : "3x"
  16 + }
  17 + ],
  18 + "info" : {
  19 + "version" : 1,
  20 + "author" : "xcode"
  21 + }
  22 +}
0 23 \ No newline at end of file
... ...
CNLiveScioLive/Assets.xcassets/live/cnlive_live_share.imageset/cnlive_live_share@2x.png 0 → 100644

2.99 KB

CNLiveScioLive/Assets.xcassets/live/cnlive_live_share.imageset/cnlive_live_share@3x.png 0 → 100644

5.09 KB

CNLiveScioLive/Pages/Base/CNLiveENTabBarController.m
... ... @@ -9,7 +9,9 @@
9 9 #import "CNLiveENTabBarController.h"
10 10 #import "XWTabBarModel.h"
11 11  
12   -@interface CNLiveENTabBarController ()
  12 +@interface CNLiveENTabBarController ()<UITabBarDelegate>{
  13 + NSInteger _indexFlag;
  14 +}
13 15 @property (nonatomic, copy) NSMutableArray *controllers;
14 16  
15 17 @end
... ... @@ -19,7 +21,8 @@
19 21 - (void)viewDidLoad {
20 22 [super viewDidLoad];
21 23 // Do any additional setup after loading the view.
22   -
  24 + _indexFlag = 0;
  25 +
23 26 [self initItemsAndViewContorllers];
24 27 // [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(changeLanguageVersion:) name:@"changeLanguageVersion" object:nil];
25 28  
... ... @@ -127,5 +130,31 @@
127 130 return [self.selectedViewController supportedInterfaceOrientations];
128 131  
129 132 }
130   -
  133 +- (void)tabBar:(UITabBar *)tabBar didSelectItem:(UITabBarItem *)item{
  134 + NSInteger index = [self.tabBar.items indexOfObject:item];
  135 + if (_indexFlag != index) {
  136 + [self animationWithIndex:index];
  137 + }
  138 +}
  139 +// 动画
  140 +- (void)animationWithIndex:(NSInteger) index {
  141 + NSMutableArray * tabbarbuttonArray = [NSMutableArray array];
  142 + for (UIView *tabBarButton in self.tabBar.subviews) {
  143 + if ([tabBarButton isKindOfClass:NSClassFromString(@"UITabBarButton")]) {
  144 + [tabbarbuttonArray addObject:tabBarButton];
  145 + }
  146 + }
  147 + CABasicAnimation*pulse = [CABasicAnimation animationWithKeyPath:@"transform.scale"];
  148 + pulse.timingFunction= [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
  149 + pulse.duration = 0.15;
  150 + pulse.repeatCount= 1;
  151 + pulse.autoreverses= YES;
  152 + pulse.fromValue= [NSNumber numberWithFloat:0.7];
  153 + pulse.toValue= [NSNumber numberWithFloat:1.3];
  154 + [[tabbarbuttonArray[index] layer]
  155 + addAnimation:pulse forKey:nil];
  156 +
  157 + _indexFlag = index;
  158 +
  159 +}
131 160 @end
... ...
CNLiveScioLive/Pages/Base/CNLiveTabBarController.m
... ... @@ -9,17 +9,19 @@
9 9 #import "CNLiveTabBarController.h"
10 10 #import "XWTabBarModel.h"
11 11  
12   -@interface CNLiveTabBarController ()
  12 +@interface CNLiveTabBarController ()<UITabBarDelegate>{
  13 + NSInteger _indexFlag;
  14 +}
13 15 @property (nonatomic, copy) NSMutableArray *controllers;
14 16  
15 17 @end
16 18  
17 19 @implementation CNLiveTabBarController
18   -
  20 +#pragma mark - life cycle
19 21 - (void)viewDidLoad {
20 22 [super viewDidLoad];
21 23 // Do any additional setup after loading the view.
22   -
  24 + _indexFlag = 0;
23 25 [self initItemsAndViewContorllers];
24 26 // [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(changeLanguageVersion:) name:@"changeLanguageVersion" object:nil];
25 27  
... ... @@ -34,6 +36,7 @@
34 36 // }
35 37 //
36 38 //}
  39 +#pragma mark - private methods
37 40 - (void)initItemsAndViewContorllers {
38 41  
39 42 NSMutableArray *viewControllerArr = [NSMutableArray array];
... ... @@ -71,7 +74,7 @@
71 74 }
72 75 self.viewControllers = viewControllerArr;
73 76 }
74   -#pragma mark --懒加载
  77 +#pragma mark - getters and setters
75 78 - (NSMutableArray *)controllers {
76 79 if (!_controllers) {
77 80 _controllers = [NSMutableArray array];
... ... @@ -138,4 +141,32 @@
138 141  
139 142 }
140 143  
  144 +#pragma mark - UITabBarDelegate
  145 +- (void)tabBar:(UITabBar *)tabBar didSelectItem:(UITabBarItem *)item{
  146 + NSInteger index = [self.tabBar.items indexOfObject:item];
  147 + if (_indexFlag != index) {
  148 + [self animationWithIndex:index];
  149 + }
  150 +}
  151 +// 动画
  152 +- (void)animationWithIndex:(NSInteger) index {
  153 + NSMutableArray * tabbarbuttonArray = [NSMutableArray array];
  154 + for (UIView *tabBarButton in self.tabBar.subviews) {
  155 + if ([tabBarButton isKindOfClass:NSClassFromString(@"UITabBarButton")]) {
  156 + [tabbarbuttonArray addObject:tabBarButton];
  157 + }
  158 + }
  159 + CABasicAnimation*pulse = [CABasicAnimation animationWithKeyPath:@"transform.scale"];
  160 + pulse.timingFunction= [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
  161 + pulse.duration = 0.20;
  162 + pulse.repeatCount= 1;
  163 + pulse.autoreverses= YES;
  164 + pulse.fromValue= [NSNumber numberWithFloat:0.9];
  165 + pulse.toValue= [NSNumber numberWithFloat:1.1];
  166 + [[tabbarbuttonArray[index] layer]
  167 + addAnimation:pulse forKey:nil];
  168 +
  169 + _indexFlag = index;
  170 +
  171 +}
141 172 @end
... ...
CNLiveScioLive/Pages/Live/Controller/CNLiveViewController.m
... ... @@ -173,6 +173,8 @@ static NSString *indicatorTableViewCell = @&quot;CNLiveIndicatorTableViewCell&quot;;
173 173  
174 174 self.navigationController.navigationBar.barTintColor = [UIColor whiteColor];
175 175 self.navigationController.navigationBar.titleTextAttributes = @{NSForegroundColorAttributeName:[UIColor whiteColor], NSFontAttributeName:[UIFont systemFontOfSize:18]};
  176 + [self.navigationController setNavigationBarHidden:NO];
  177 +
176 178 }
177 179  
178 180 - (void)viewDidLoad {
... ...
CNLiveScioLive/Pages/Live/Controller/GraphicLiveViewController.h
... ... @@ -54,5 +54,7 @@ typedef NS_ENUM(NSInteger, PlayerType) {
54 54 @property (nonatomic, assign) PlayerType type;
55 55  
56 56 @property (nonatomic, strong) NSArray *relatedArray;
57   --(id)initWithDictionary:(NSDictionary*)dictionary;
  57 +
  58 +- (id)initWithDictionary:(NSDictionary*)dictionary;
  59 +
58 60 @end
... ...
CNLiveScioLive/Pages/Live/Controller/GraphicLiveViewController.m
... ... @@ -9,14 +9,15 @@
9 9 #import "GraphicLiveViewController.h"
10 10 #import "OldVideoDetailViewController.h"
11 11  
12   -@interface GraphicLiveViewController ()
  12 +@interface GraphicLiveViewController ()<CNLivePlayerControllerDelegate>
13 13 @end
14 14 @implementation GraphicLiveViewController
15 15 - (void)Pop:(id)sender{
16 16 [self.videoController stop];
17 17 [self.navigationController popViewControllerAnimated:YES];
18 18 }
19   -- (id)initWithDictionary:(NSDictionary*)dictionary {
  19 +
  20 +- (id)initWithDictionary:(NSDictionary *)dictionary {
20 21 if (self = [super init]) {
21 22 _dictionary = [NSDictionary dictionaryWithDictionary:dictionary];
22 23 int status = [_dictionary[@"status"] intValue];
... ... @@ -44,12 +45,14 @@
44 45 }
45 46 return self;
46 47 }
  48 +
47 49 - (NSString *)setHTMLString {
48 50 NSString* htmlBody = [[NSString alloc] initWithFormat:@"<p><font style=\"font-size:%@px;\">%@</font></p>",fontArray[fontIndex],[_dic objectForKey:@"Content"]];
49 51 NSString* htmlFooter = @"</body></html>";
50 52 NSString* strHtml = [[NSString alloc] initWithFormat:@"%@%@",htmlBody,htmlFooter];
51 53 return strHtml;
52 54 }
  55 +
53 56 - (void)loadData {
54 57 if (![[Reachability reachabilityForInternetConnection] currentReachabilityStatus]) {
55 58 [AlertViewTool showHUDViewText:CustomStr(@"NetworkiInterruption")];
... ... @@ -89,12 +92,14 @@
89 92 [[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryAmbient error: &error];
90 93 [[AVAudioSession sharedInstance] setActive:YES error:nil];
91 94 }
  95 +
92 96 - (void)viewWillDisappear:(BOOL)animated {
93 97 [super viewWillDisappear:animated];
94 98 [self.liveController stop];
95 99 self.liveController = nil;
96 100 [self.navigationController setNavigationBarHidden:NO];
97 101 }
  102 +
98 103 - (void)viewDidLoad {
99 104 [super viewDidLoad];
100 105 self.view.backgroundColor = [UIColor whiteColor];
... ... @@ -168,15 +173,73 @@
168 173 - (void)loadMovieView {
169 174 [[NSUserDefaults standardUserDefaults] setObject:@0 forKey:@"GraphicLive_DidLockScreen"];
170 175 imageView = [[UIImageView alloc] initWithFrame:CGRectMake(0, iPhoneX ? 44 : 0, MainScreenWidth, videoHeight)];
171   - imageView.image = [UIImage imageNamed:@"cnlive_placeholder"];
  176 + [imageView sd_setImageWithURL:[NSURL URLWithString:_dictionary[@"poster"]] placeholderImage:[UIImage imageNamed:@"cnlive_placeholder"]];
172 177 [self.view addSubview:imageView];
173 178  
174 179 UIButton *backButton = [UIButton buttonWithType:UIButtonTypeCustom];
175 180 [backButton addTarget:self action:@selector(Pop:) forControlEvents:UIControlEventTouchUpInside];
176 181 [backButton setImage:[UIImage imageNamed:@"cnlive_white_back"] forState:UIControlStateNormal];
177   - [backButton setFrame:CGRectMake(0, 20, 44, 44)];
  182 + [backButton setFrame:CGRectMake(0, StatusBarHeight, 44, 44)];
178 183 [self.view addSubview:backButton];
  184 +
  185 + UIButton *shareButton = [UIButton buttonWithType:UIButtonTypeCustom];
  186 + [shareButton addTarget:self action:@selector(shareButton:) forControlEvents:UIControlEventTouchUpInside];
  187 + [shareButton setImage:[UIImage imageNamed:@"cnlive_live_share"] forState:UIControlStateNormal];
  188 + [shareButton setFrame:CGRectMake(MainScreenWidth-40, StatusBarHeight+7, 30, 30)];
  189 + [self.view addSubview:shareButton];
  190 +
179 191 }
  192 +
  193 +- (void)shareButton:(UIButton *)btn{
  194 + NSString *text = [NSString stringWithFormat:@"%@",_dictionary[@"Description"]];
  195 + NSString *shareUrl = [NSString stringWithFormat:@"%@",_dictionary[@"shareUrl"]];
  196 +
  197 + if ([text isEqualToString:@"<null>"]) {
  198 + text = _dictionary[@"title"];
  199 + }
  200 + if ([shareUrl isEqualToString:@"<null>"]||[shareUrl isEqualToString:@"(null)"]) {
  201 + shareUrl = @"http://app.scio.gov.cn/gxbShare.html";
  202 + }
  203 + NSMutableDictionary *shareParams = [NSMutableDictionary dictionary];
  204 + [shareParams SSDKSetupShareParamsByText:text
  205 + images:@[[UIImage imageNamed:@"cnlive_zhouxin_icon"]]
  206 + url:[NSURL URLWithString:shareUrl]
  207 + title:_dictionary[@"title"]
  208 + type:SSDKContentTypeAuto];
  209 + //2、分享(可以弹出我们的分享菜单和编辑界面)
  210 + //要显示菜单的视图, iPad版中此参数作为弹出菜单的参照视图,只有传这个才可以弹出我们的分享菜单,可以传分享的按钮对象或者自己创建小的view 对象,iPhone可以传nil不会影响
  211 + [ShareSDK showShareActionSheet:nil items:nil shareParams:shareParams onShareStateChanged:^(SSDKResponseState state, SSDKPlatformType platformType, NSDictionary *userData, SSDKContentEntity *contentEntity, NSError *error, BOOL end) {
  212 +
  213 + switch (state) {
  214 + case SSDKResponseStateSuccess:
  215 + {
  216 + UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:CustomStr(@"ShareSuccess")
  217 + message:nil
  218 + delegate:nil
  219 + cancelButtonTitle:CustomStr(@"Sure")
  220 + otherButtonTitles:nil];
  221 + [alertView show];
  222 + break;
  223 + }
  224 + case SSDKResponseStateFail:
  225 + {
  226 + UIAlertView *alert = [[UIAlertView alloc] initWithTitle:CustomStr(@"ShareFailure")
  227 + message:[NSString stringWithFormat:@"%@",error]
  228 + delegate:nil
  229 + cancelButtonTitle:CustomStr(@"Sure")
  230 + otherButtonTitles:nil, nil];
  231 + [alert show];
  232 + break;
  233 + }
  234 + default:
  235 + break;
  236 +
  237 + }
  238 +
  239 + }];
  240 +
  241 +}
  242 +
180 243 - (void)pausePlayer {
181 244 [self.liveController pause];
182 245 }
... ... @@ -187,12 +250,19 @@
187 250 CGRect frame = CGRectMake(0, iPhoneX ? 44 : 0, MainScreenWidth, videoHeight);
188 251 UIView *bgView = [[UIView alloc] initWithFrame:frame];
189 252 bgView.backgroundColor = [UIColor blackColor];
  253 + [self.view addSubview:bgView];
  254 +
190 255 UIButton *backButton = [UIButton buttonWithType:UIButtonTypeCustom];
191 256 backButton.frame = CGRectMake(20, 20, 25, 41);
192 257 [backButton setImage:[UIImage imageNamed:@"cnlive_white_back"] forState:UIControlStateNormal];
193 258 [backButton addTarget:self action:@selector(backButtonAction:) forControlEvents:UIControlEventTouchUpInside];
194 259 [bgView addSubview:backButton];
195   - [self.view addSubview:bgView];
  260 +
  261 + UIButton *shareButton = [UIButton buttonWithType:UIButtonTypeCustom];
  262 + [shareButton addTarget:self action:@selector(shareButton:) forControlEvents:UIControlEventTouchUpInside];
  263 + [shareButton setImage:[UIImage imageNamed:@"cnlive_live_share"] forState:UIControlStateNormal];
  264 + [shareButton setFrame:CGRectMake(MainScreenWidth-40, StatusBarHeight+7, 30, 30)];
  265 + [bgView addSubview:shareButton];
196 266  
197 267 if (self.type == PlayerTypeLiving) {
198 268 // 直播
... ... @@ -205,6 +275,8 @@
205 275 } getAnchorStatusResult:^(BOOL result) {
206 276 NSLog(@"获取主播状态%d", result ? YES : NO);
207 277 }];
  278 + self.liveController.delegate = self;
  279 +
208 280 } else {
209 281 // 点播
210 282 self.liveController = [[CNLivePlayerController alloc] initVodPlayWithVId:_dictionary[@"playbackId"] authSuccess:^{
... ... @@ -214,6 +286,7 @@
214 286 } authFailed:^(NSDictionary *errorInfo) {
215 287 NSLog(@"初始化点播播放器失败%@", errorInfo);
216 288 }];
  289 + self.liveController.delegate = self;
217 290 }
218 291 [[NSUserDefaults standardUserDefaults] setObject:@0 forKey:@"ZXVideoPlayer_DidLockScreen"];
219 292 __weak typeof(self) weakSelf = self;
... ... @@ -230,6 +303,10 @@
230 303 self.liveController.video = video;
231 304 }
232 305  
  306 +- (void)shareButtonCNLivePlayerController:(CNLivePlayerController *)view{
  307 + [self shareButton:nil];
  308 +
  309 +}
233 310 - (void)backButtonAction:(UIButton *)sender {
234 311 [self.navigationController popViewControllerAnimated:YES];
235 312 }
... ...
CNLiveScioLive/Pages/Live/Controller/VideoPlayBackViewController.m
... ... @@ -23,25 +23,35 @@
23 23 [self.videoController stop];
24 24 [self.navigationController popToRootViewControllerAnimated:YES];
25 25 }
26   --(id)initWithDictionary:(NSDictionary*)dictionary{
  26 +- (id)initWithDictionary:(NSDictionary*)dictionary{
27 27 if (self = [super init]) {
28 28 _dictionary = [NSDictionary dictionaryWithDictionary:dictionary];
29   - if (![_dictionary[@"videoUrl"] isEqualToString:@""]) {
30   - isPlay = YES;
31   - url = _dictionary[@"videoUrl"];
32   - if (0 == [url length]) {
33   - url = _dictionary[@"uploadVideoUrl"];
  29 + if ([_dictionary[@"videoFlag"] isEqualToString:@"1"]) {
  30 + if (![_dictionary[@"videoUrl"] isEqualToString:@""]) {
  31 + isPlay = YES;
  32 + url = _dictionary[@"videoUrl"];
  33 + if (0 == [url length]) {
  34 + url = _dictionary[@"uploadVideoUrl"];
  35 + }
  36 + url = [url stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]];
  37 + movieUrl = [NSURL URLWithString:url];
  38 +
  39 + } else {
  40 + isPlay = NO;
34 41 }
35   - url = [url stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]];
36   - movieUrl = [NSURL URLWithString:url];
  42 +
37 43 } else {
38 44 isPlay = NO;
  45 +
39 46 }
  47 +
40 48 NSLog(@"movieUrl -> %@",movieUrl);
41 49 videoHeight = MainScreenWidth * (9.0 / 16.0);
  50 +
42 51 }
43 52 return self;
44 53 }
  54 +
45 55 - (NSString *)setHTMLString {
46 56 // NSString* htmlHeader = [[NSString alloc] initWithFormat:@"<html><p><font style=\"font-size:20px;\"><strong>%@</strong></font><br>%@</p><body>",[_dicArticle objectForKey:@"Tittle"],[_dicArticle objectForKey:@"PublishDateTime"]];
47 57 NSString* htmlBody = [[NSString alloc] initWithFormat:@"<p><font style=\"font-size:%@px;\">%@</font></p>",fontArray[fontIndex],[_dicArticle objectForKey:@"Content"]];
... ... @@ -126,6 +136,7 @@
126 136 [shareButton addTarget:self action:@selector(shareButtonTaped:) forControlEvents:UIControlEventTouchUpInside];
127 137 [self.view addSubview:shareButton];
128 138 [shareButton setTag:30000];
  139 +
129 140 }
130 141 - (void)shareButtonTaped:(id)sender {
131 142 UIButton *btn = (UIButton *)sender;
... ... @@ -297,13 +308,13 @@
297 308 - (void)loadMovieView {
298 309 [[NSUserDefaults standardUserDefaults] setObject:@0 forKey:@"GraphicLive_DidLockScreen"];
299 310 imageView = [[UIImageView alloc] initWithFrame:CGRectMake(0, iPhoneX ? 44 : 0, MainScreenWidth, videoHeight)];
300   - imageView.image = [UIImage imageNamed:@"backDefault1"];
  311 + [imageView sd_setImageWithURL:[NSURL URLWithString:_dictionary[@"poster"]] placeholderImage:[UIImage imageNamed:@"cnlive_placeholder"]];
301 312 [self.view addSubview:imageView];
302 313  
303 314 UIButton *backButton = [UIButton buttonWithType:UIButtonTypeCustom];
304 315 [backButton addTarget:self action:@selector(Pop:) forControlEvents:UIControlEventTouchUpInside];
305   - [backButton setImage:[UIImage imageNamed:@"navigationBack"] forState:UIControlStateNormal];
306   - [backButton setFrame:CGRectMake(0, 20, 44, 44)];
  316 + [backButton setImage:[UIImage imageNamed:@"cnlive_white_back"] forState:UIControlStateNormal];
  317 + [backButton setFrame:CGRectMake(0, StatusBarHeight, 44, 44)];
307 318 [self.view addSubview:backButton];
308 319 }
309 320  
... ...
CNLiveScioLive/Pages/Live/Model/CNLiveModel.h
... ... @@ -18,6 +18,12 @@
18 18 @property (nonatomic, copy) NSString *img;
19 19 @property (nonatomic, copy) NSString *selectedImage;
20 20 @property (nonatomic, copy) NSString *createDate;
  21 +@property (nonatomic, copy) NSString *liveShow;//liveShow 展示标识 0:APP不展示 1:展示
  22 +
  23 +
  24 +@property (nonatomic, copy) NSString *liveFlag;//liveFlag 直播标识 0:视频直播 1:图文直播
  25 +
  26 +@property (nonatomic, copy) NSString *videoFlag;//videoFlag 0 图文回放 1视频回放
21 27  
22 28  
23 29 /*
... ... @@ -39,7 +45,6 @@
39 45 }
40 46 */
41 47  
42   -@property (nonatomic, copy) NSString *liveFlag;
43 48 @property (nonatomic, copy) NSString *activityId;
44 49 @property (nonatomic, copy) NSString *playbackId;
45 50 @property (nonatomic, copy) NSString *checkinfo;
... ... @@ -63,4 +68,6 @@
63 68  
64 69 @property (nonatomic, copy) NSString *publishDate;
65 70  
  71 +@property (nonatomic, copy) NSString *shareUrl;
  72 +
66 73 @end
... ...
CNLiveScioLive/Pages/Live/View/CNLiveHeaderView.m
... ... @@ -11,10 +11,8 @@
11 11  
12 12 @interface CNLiveHeaderView()
13 13 @property (nonatomic, strong) UIImageView *backgroundImage;
14   -@property (nonatomic, strong) UILabel *titleLabel;
15 14 @property (nonatomic, strong) UILabel *stateLabel;//状态
16 15 @property (nonatomic, strong) UIButton *playImage;//播放
17   -@property (nonatomic, strong) UILabel *timeLabel;//时间
18 16  
19 17 @end
20 18  
... ... @@ -39,13 +37,6 @@
39 37 [_playImage addTarget:self action:@selector(playImageClicked:) forControlEvents:UIControlEventTouchUpInside];
40 38 [self addSubview:_playImage];
41 39  
42   - _titleLabel = [[UILabel alloc] init];
43   - _titleLabel.numberOfLines = 1;
44   - _titleLabel.lineBreakMode = NSLineBreakByTruncatingTail;
45   - _titleLabel.textColor = [UIColor whiteColor];
46   - _titleLabel.font = [UIFont systemFontOfSize:14];
47   - [self addSubview:_titleLabel];
48   -
49 40 _stateLabel = [[UILabel alloc] init];
50 41 _stateLabel.numberOfLines = 1;
51 42 _stateLabel.lineBreakMode = NSLineBreakByTruncatingTail;
... ... @@ -55,13 +46,6 @@
55 46 _stateLabel.layer.masksToBounds = YES;
56 47 _stateLabel.layer.cornerRadius = 2;
57 48 [self addSubview:_stateLabel];
58   -
59   - _timeLabel = [[UILabel alloc] init];
60   - _timeLabel.numberOfLines = 1;
61   - _timeLabel.lineBreakMode = NSLineBreakByTruncatingTail;
62   - _timeLabel.textColor = [UIColor lightGrayColor];
63   - _timeLabel.font = [UIFont systemFontOfSize:12];
64   - [self addSubview:_timeLabel];
65 49  
66 50 }
67 51 return self;
... ... @@ -69,8 +53,6 @@
69 53 }
70 54 - (void)setModel:(CNLiveModel *)model{
71 55 _model = model;
72   - _titleLabel.text = @"最新发布会";
73   - _timeLabel.text = model.liveStartDateTime;
74 56 [_backgroundImage sd_setImageWithURL:[NSURL URLWithString:model.poster] placeholderImage:[UIImage imageNamed:@"cnlive_placeholder"]];
75 57 switch ([model.status intValue]) {
76 58 case 0: {
... ... @@ -152,29 +134,18 @@
152 134  
153 135 }];
154 136  
155   - [_titleLabel mas_makeConstraints:^(MASConstraintMaker *make) {
156   - make.left.equalTo(self->_backgroundImage.mas_left).with.offset(10);
157   - make.top.equalTo(self->_backgroundImage.mas_top).with.offset(10);
158   - make.height.offset(18);
159   -
160   - }];
161   -
162 137 [_stateLabel mas_makeConstraints:^(MASConstraintMaker *make) {
163   - make.left.equalTo(self->_titleLabel.mas_right).with.offset(5);
164   - make.top.equalTo(self->_backgroundImage.mas_top).with.offset(10);
165   - make.height.offset(18);
166   -
167   - }];
168   -
169   - [_timeLabel mas_makeConstraints:^(MASConstraintMaker *make) {
170   - make.right.equalTo(self->_backgroundImage.mas_right).with.offset(-10);
  138 + make.left.equalTo(self->_backgroundImage.mas_left).with.offset(10);
171 139 make.top.equalTo(self->_backgroundImage.mas_top).with.offset(10);
172 140 make.height.offset(18);
173 141  
174 142 }];
  143 +
175 144 }
176 145 - (void)playImageClicked:(UIButton *)btn{
177 146 self.block?self.block():@"";
178 147  
179 148 }
  149 +
180 150 @end
  151 +
... ...
CNLiveScioLive/Pages/Live/View/CNLiveTableViewCell.m
... ... @@ -67,6 +67,7 @@
67 67 _titleLabel.text = model.title;
68 68 _timeLabel.text = model.createDate;
69 69 [_picImage sd_setImageWithURL:[NSURL URLWithString:model.img] placeholderImage:[UIImage imageNamed:@"placeholder"]];
  70 + _playImage.hidden = [model.videoFlag isEqualToString:@"0"];
70 71 [self layoutSubviews];
71 72  
72 73 }
... ...
CNLiveScioLive/Pages/Tools/CNLivePlayer/CNLivePlayerController.h
... ... @@ -12,8 +12,17 @@
12 12 #define kZXVideoPlayerOriginalWidth MIN([UIScreen mainScreen].bounds.size.width, [UIScreen mainScreen].bounds.size.height)
13 13 #define kZXVideoPlayerOriginalHeight (kZXVideoPlayerOriginalWidth * (9.0 / 16.0))
14 14  
  15 +@class CNLivePlayerController;
  16 +
  17 +@protocol CNLivePlayerControllerDelegate <NSObject>
  18 +- (void)shareButtonCNLivePlayerController:(CNLivePlayerController *)view;
  19 +
  20 +@end
  21 +
15 22 @interface CNLivePlayerController : CNLiveMoviePlayerController
16 23  
  24 +@property (nonatomic, weak) id<CNLivePlayerControllerDelegate> delegate;
  25 +
17 26 @property (nonatomic, assign) CGRect frame;
18 27 /// video model
19 28 @property (nonatomic, strong, readwrite) ZXVideo *video;
... ...
CNLiveScioLive/Pages/Tools/CNLivePlayer/CNLivePlayerController.m
No preview for this file type
CNLiveScioLive/Pages/Tools/ZXVideoPlayer/Classes/ZXVideoPlayerControlView.h
... ... @@ -57,6 +57,8 @@
57 57 @property (nonatomic, strong, readwrite) UILabel *titleLabel;
58 58 /// 直播状态
59 59 @property (nonatomic, assign) int liveStatus;
  60 +///分享
  61 +@property (nonatomic, strong, readwrite) UIButton *shareButton;
60 62  
61 63 - (void)animateHide;
62 64 - (void)animateShow;
... ...
CNLiveScioLive/Pages/Tools/ZXVideoPlayer/Classes/ZXVideoPlayerControlView.m
... ... @@ -74,6 +74,9 @@ static const CGFloat kVideoControlBarAutoFadeOutTimeInterval = 5.0;
74 74 // 标题
75 75 [self.topBar addSubview:self.titleLabel];
76 76  
  77 + // 标题
  78 + [self.topBar addSubview:self.shareButton];
  79 +
77 80 UITapGestureRecognizer *tapGesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(onTap:)];
78 81 [self addGestureRecognizer:tapGesture];
79 82  
... ... @@ -387,6 +390,16 @@ static const CGFloat kVideoControlBarAutoFadeOutTimeInterval = 5.0;
387 390 return _retryButton;
388 391 }
389 392  
  393 +- (UIButton *)shareButton {
  394 + if (!_shareButton) {
  395 + _shareButton = [UIButton buttonWithType:UIButtonTypeCustom];
  396 + [_shareButton setFrame:CGRectMake(MainScreenWidth-40, 20, 30, 30)];
  397 + [_shareButton setImage:[UIImage imageNamed:@"cnlive_live_share"] forState:UIControlStateNormal];
  398 +
  399 + }
  400 + return _shareButton;
  401 +}
  402 +
390 403 #pragma mark - setter
391 404 - (void)setLiveStatus:(int)liveStatus {
392 405 _liveStatus = liveStatus;
... ...
CNLiveScioLive/Pages/Tools/ZXVideoPlayer/Classes/ZXVideoPlayerController.h
... ... @@ -13,6 +13,7 @@
13 13 #define kZXVideoPlayerOriginalWidth MIN([UIScreen mainScreen].bounds.size.width, [UIScreen mainScreen].bounds.size.height)
14 14 #define kZXVideoPlayerOriginalHeight (kZXVideoPlayerOriginalWidth * (9.0 / 16.0))
15 15  
  16 +
16 17 @interface ZXVideoPlayerController : MPMoviePlayerController
17 18  
18 19 @property (nonatomic, assign) CGRect frame;
... ...
CNLiveScioLive/Pages/Tools/ZXVideoPlayer/Classes/ZXVideoPlayerController.m
No preview for this file type