Commit 1b84b084eab999bea4e51e21fdf274418288dc01
Merge branch 'master' of bj.gitlab.cnlive.com:ios-team/LiveVideoCloud
Conflicts: LiveVideoCloud/LiveVideoCloud.xcodeproj/project.pbxproj LiveVideoCloud/LiveVideoCloud/AppDelegate/AppDelegate.m
Showing
23 changed files
with
343 additions
and
90 deletions
LiveVideoCloud/LiveVideoCloud.xcodeproj/project.pbxproj
| ... | ... | @@ -191,6 +191,7 @@ |
| 191 | 191 | D2888DB11E6EC05F003A77C8 /* TempViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = D2888DB01E6EC05F003A77C8 /* TempViewController.m */; }; |
| 192 | 192 | D2888DB41E6EC154003A77C8 /* HomeViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = D2888DB31E6EC154003A77C8 /* HomeViewController.m */; }; |
| 193 | 193 | D2888DB71E6EC1B8003A77C8 /* LVCMyViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = D2888DB61E6EC1B8003A77C8 /* LVCMyViewController.m */; }; |
| 194 | + D28F5FFF1E8BC7EF00914142 /* LVCUGCLiveListView.m in Sources */ = {isa = PBXBuildFile; fileRef = D28F5FFE1E8BC7EF00914142 /* LVCUGCLiveListView.m */; }; | |
| 194 | 195 | D29D88481E88C53300543A03 /* LVCUGCLivePrepareView.m in Sources */ = {isa = PBXBuildFile; fileRef = D29D88471E88C53300543A03 /* LVCUGCLivePrepareView.m */; }; |
| 195 | 196 | D29E81ED1E88DC5B008C9906 /* PriChatCell.m in Sources */ = {isa = PBXBuildFile; fileRef = D29E81EC1E88DC5B008C9906 /* PriChatCell.m */; }; |
| 196 | 197 | D2A089E81E89FA720071412C /* LVCUGCLivePlayerCell.m in Sources */ = {isa = PBXBuildFile; fileRef = D2A089E71E89FA720071412C /* LVCUGCLivePlayerCell.m */; }; |
| ... | ... | @@ -206,7 +207,6 @@ |
| 206 | 207 | D2B7B2511E8247D400ED084E /* ChatBarrageManager.m in Sources */ = {isa = PBXBuildFile; fileRef = D2B7B2501E8247D400ED084E /* ChatBarrageManager.m */; }; |
| 207 | 208 | D2B7B2541E824B2D00ED084E /* ChatBarrageView.m in Sources */ = {isa = PBXBuildFile; fileRef = D2B7B2531E824B2D00ED084E /* ChatBarrageView.m */; }; |
| 208 | 209 | D2B7B2571E8261EF00ED084E /* ChatBarrOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = D2B7B2561E8261EF00ED084E /* ChatBarrOperation.m */; }; |
| 209 | - D2CC7B871E891AA50034B8BF /* LVCUGCLiveListController.m in Sources */ = {isa = PBXBuildFile; fileRef = D2CC7B861E891AA50034B8BF /* LVCUGCLiveListController.m */; }; | |
| 210 | 210 | D2D236B41E88F8E600B7C517 /* CNLiveChatManager.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D2D236B21E88F8E600B7C517 /* CNLiveChatManager.framework */; }; |
| 211 | 211 | D2D236B51E88F8E600B7C517 /* CNLiveMsgTools.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D2D236B31E88F8E600B7C517 /* CNLiveMsgTools.framework */; }; |
| 212 | 212 | D2D7D18D1E8A581000217771 /* timg.jpeg in Resources */ = {isa = PBXBuildFile; fileRef = D2D7D18C1E8A581000217771 /* timg.jpeg */; }; |
| ... | ... | @@ -628,6 +628,8 @@ |
| 628 | 628 | D2888DB31E6EC154003A77C8 /* HomeViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HomeViewController.m; sourceTree = "<group>"; }; |
| 629 | 629 | D2888DB51E6EC1B8003A77C8 /* LVCMyViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LVCMyViewController.h; sourceTree = "<group>"; }; |
| 630 | 630 | D2888DB61E6EC1B8003A77C8 /* LVCMyViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LVCMyViewController.m; sourceTree = "<group>"; }; |
| 631 | + D28F5FFD1E8BC7EF00914142 /* LVCUGCLiveListView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = LVCUGCLiveListView.h; path = ../Controller/LVCUGCLiveListView.h; sourceTree = "<group>"; }; | |
| 632 | + D28F5FFE1E8BC7EF00914142 /* LVCUGCLiveListView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = LVCUGCLiveListView.m; path = ../Controller/LVCUGCLiveListView.m; sourceTree = "<group>"; }; | |
| 631 | 633 | D29D88461E88C53300543A03 /* LVCUGCLivePrepareView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LVCUGCLivePrepareView.h; sourceTree = "<group>"; }; |
| 632 | 634 | D29D88471E88C53300543A03 /* LVCUGCLivePrepareView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LVCUGCLivePrepareView.m; sourceTree = "<group>"; }; |
| 633 | 635 | D29E81EB1E88DC5B008C9906 /* PriChatCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PriChatCell.h; sourceTree = "<group>"; }; |
| ... | ... | @@ -650,8 +652,6 @@ |
| 650 | 652 | D2B7B2531E824B2D00ED084E /* ChatBarrageView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ChatBarrageView.m; sourceTree = "<group>"; }; |
| 651 | 653 | D2B7B2551E8261EF00ED084E /* ChatBarrOperation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ChatBarrOperation.h; sourceTree = "<group>"; }; |
| 652 | 654 | D2B7B2561E8261EF00ED084E /* ChatBarrOperation.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ChatBarrOperation.m; sourceTree = "<group>"; }; |
| 653 | - D2CC7B851E891AA50034B8BF /* LVCUGCLiveListController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LVCUGCLiveListController.h; sourceTree = "<group>"; }; | |
| 654 | - D2CC7B861E891AA50034B8BF /* LVCUGCLiveListController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LVCUGCLiveListController.m; sourceTree = "<group>"; }; | |
| 655 | 655 | D2D236B21E88F8E600B7C517 /* CNLiveChatManager.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = CNLiveChatManager.framework; sourceTree = "<group>"; }; |
| 656 | 656 | D2D236B31E88F8E600B7C517 /* CNLiveMsgTools.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = CNLiveMsgTools.framework; sourceTree = "<group>"; }; |
| 657 | 657 | D2D7D18C1E8A581000217771 /* timg.jpeg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = timg.jpeg; sourceTree = "<group>"; }; |
| ... | ... | @@ -1684,8 +1684,6 @@ |
| 1684 | 1684 | 810B64E21E779AFE00133E15 /* LVCLivePlayerController.m */, |
| 1685 | 1685 | 810B65081E77B39D00133E15 /* LVCFullScreenPlayerController.h */, |
| 1686 | 1686 | 810B65091E77B39D00133E15 /* LVCFullScreenPlayerController.m */, |
| 1687 | - D2CC7B851E891AA50034B8BF /* LVCUGCLiveListController.h */, | |
| 1688 | - D2CC7B861E891AA50034B8BF /* LVCUGCLiveListController.m */, | |
| 1689 | 1687 | D25BF87E1E7BD266007FB138 /* LVCUGCLivePlayerController.h */, |
| 1690 | 1688 | D25BF87F1E7BD266007FB138 /* LVCUGCLivePlayerController.m */, |
| 1691 | 1689 | 81A483151E88BED00097A80A /* LVCTVLiveViewController.h */, |
| ... | ... | @@ -1719,6 +1717,8 @@ |
| 1719 | 1717 | 8112D4301E7927A5002E00F6 /* LVCPlayerLoadingView.m */, |
| 1720 | 1718 | 81CE9E191E8CF567000F8F6B /* LVCRequestFailedView.h */, |
| 1721 | 1719 | 81CE9E1A1E8CF567000F8F6B /* LVCRequestFailedView.m */, |
| 1720 | + D28F5FFD1E8BC7EF00914142 /* LVCUGCLiveListView.h */, | |
| 1721 | + D28F5FFE1E8BC7EF00914142 /* LVCUGCLiveListView.m */, | |
| 1722 | 1722 | D2A089E61E89FA720071412C /* LVCUGCLivePlayerCell.h */, |
| 1723 | 1723 | D2A089E71E89FA720071412C /* LVCUGCLivePlayerCell.m */, |
| 1724 | 1724 | D25BF8811E7F775F007FB138 /* LVCUGCPlayerLoadingView.h */, |
| ... | ... | @@ -1936,6 +1936,7 @@ |
| 1936 | 1936 | D2029CB81E6EADE10027CD92 /* SDImageCache.m in Sources */, |
| 1937 | 1937 | D2029CBB1E6EADE10027CD92 /* SDWebImageDownloader.m in Sources */, |
| 1938 | 1938 | D2029CA71E6EADE10027CD92 /* MJRefreshAutoGifFooter.m in Sources */, |
| 1939 | + D28F5FFF1E8BC7EF00914142 /* LVCUGCLiveListView.m in Sources */, | |
| 1939 | 1940 | D2029CC11E6EADE10027CD92 /* UIImage+MultiFormat.m in Sources */, |
| 1940 | 1941 | D245715F1E83B09900AA85D6 /* userInfoModel.m in Sources */, |
| 1941 | 1942 | D2029C861E6EADE10027CD92 /* Tools.m in Sources */, |
| ... | ... | @@ -2069,7 +2070,6 @@ |
| 2069 | 2070 | D2029D081E6EAE2E0027CD92 /* ZXDeviceInfo.m in Sources */, |
| 2070 | 2071 | D24571631E83C40B00AA85D6 /* PrivateView.m in Sources */, |
| 2071 | 2072 | D2029CC21E6EADE10027CD92 /* UIImage+WebP.m in Sources */, |
| 2072 | - D2CC7B871E891AA50034B8BF /* LVCUGCLiveListController.m in Sources */, | |
| 2073 | 2073 | D2029BCD1E6EADD70027CD92 /* BaseViewController.m in Sources */, |
| 2074 | 2074 | 810B64E01E779AE900133E15 /* LVCPlayer.m in Sources */, |
| 2075 | 2075 | 810B64FF1E779B1F00133E15 /* MASConstraint.m in Sources */, | ... | ... |
LiveVideoCloud/LiveVideoCloud/AppDelegate/AppDelegate.m
| ... | ... | @@ -44,7 +44,8 @@ |
| 44 | 44 | */ |
| 45 | 45 | |
| 46 | 46 | // 20170327 20170328 |
| 47 | - CNLiveChatUserInfo *userInfo = [[CNLiveChatUserInfo alloc] initWithUserId:@"20170311" name:@"zzllzzzll" portrait:@"https://y3.cnliveimg.com/mobile/images/mobilehead/2017/03/30/1490844962259_small.jpg"]; | |
| 47 | + | |
| 48 | + CNLiveChatUserInfo *userInfo = [[CNLiveChatUserInfo alloc] initWithUserId:@"20170328" name:@"20170328" portrait:@""]; | |
| 48 | 49 | [[CNLiveChatManager sharedCNLiveChatManager] loginServer:userInfo success:^(NSString *userId) { |
| 49 | 50 | NSLog(@"连接服务器-----success"); |
| 50 | 51 | ... | ... |
LiveVideoCloud/LiveVideoCloud/Classes/Sections/InteractionSections/Chat/ChatMsgModel/chatMsgModel.m
LiveVideoCloud/LiveVideoCloud/Classes/Sections/InteractionSections/Gift/Present/ComboCell.m
| ... | ... | @@ -11,7 +11,7 @@ |
| 11 | 11 | |
| 12 | 12 | @interface ComboCell () |
| 13 | 13 | |
| 14 | -@property (nonatomic ,strong) UIView * _Nullable bgView; | |
| 14 | +@property (nonatomic ,strong) UIImageView * _Nullable bgView; | |
| 15 | 15 | @property (nonatomic ,strong) UIImageView * _Nullable icon; |
| 16 | 16 | @property (nonatomic ,strong) UILabel * _Nullable senderNameLbl; |
| 17 | 17 | @property (nonatomic ,strong) UILabel * _Nullable giftNameLbl; |
| ... | ... | @@ -43,6 +43,7 @@ |
| 43 | 43 | self.senderNameLbl.size = [self.senderNameLbl labelSize]; |
| 44 | 44 | self.giftNameLbl.size = [self.giftNameLbl labelSize]; |
| 45 | 45 | self.bgView.frame = CGRectMake(0, 0, self.width, self.height); |
| 46 | + self.bgView.image = [UIImage imageNamed:@"背景220x40"]; | |
| 46 | 47 | self.bgView.layer.cornerRadius = self.height * 0.5; |
| 47 | 48 | self.giftImage.frame = CGRectMake(self.width - self.height, 0, self.height, self.height); |
| 48 | 49 | self.giftImage.image = [UIImage imageNamed:model.giftImageName]; |
| ... | ... | @@ -68,7 +69,7 @@ |
| 68 | 69 | { |
| 69 | 70 | _senderNameLbl = [[UILabel alloc] initWithFrame:CGRectMake(self.icon.right + 5, 0, 100, 20)]; |
| 70 | 71 | _senderNameLbl.font = [UIFont systemFontOfSize:kContentFont]; |
| 71 | - _senderNameLbl.textColor = [UIColor blackColor]; | |
| 72 | + _senderNameLbl.textColor = [UIColor whiteColor]; | |
| 72 | 73 | } |
| 73 | 74 | return _senderNameLbl; |
| 74 | 75 | } |
| ... | ... | @@ -79,7 +80,7 @@ |
| 79 | 80 | { |
| 80 | 81 | _giftNameLbl = [[UILabel alloc] initWithFrame:CGRectMake(self.icon.right + 5, self.senderNameLbl.bottom , 100, 20)]; |
| 81 | 82 | _giftNameLbl.font = [UIFont systemFontOfSize:kContentFont]; |
| 82 | - _giftNameLbl.textColor = [UIColor blackColor]; | |
| 83 | + _giftNameLbl.textColor = [UIColor yellowColorZX]; | |
| 83 | 84 | } |
| 84 | 85 | return _giftNameLbl; |
| 85 | 86 | } |
| ... | ... | @@ -91,9 +92,8 @@ |
| 91 | 92 | _icon = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 40, 40)]; |
| 92 | 93 | _icon.clipsToBounds = YES; |
| 93 | 94 | _icon.layer.cornerRadius = 20; |
| 94 | - _icon.layer.borderWidth = 1; | |
| 95 | - _icon.layer.borderColor = [UIColor cyanColor].CGColor; | |
| 96 | - | |
| 95 | +// _icon.layer.borderWidth = 1; | |
| 96 | +// _icon.layer.borderColor = [UIColor cyanColor].CGColor; | |
| 97 | 97 | } |
| 98 | 98 | return _icon; |
| 99 | 99 | } |
| ... | ... | @@ -107,13 +107,13 @@ |
| 107 | 107 | return _giftImage; |
| 108 | 108 | } |
| 109 | 109 | |
| 110 | -- (UIView *)bgView | |
| 110 | +- (UIImageView *)bgView | |
| 111 | 111 | { |
| 112 | 112 | if (!_bgView) |
| 113 | 113 | { |
| 114 | - _bgView = [[UIView alloc] init]; | |
| 115 | - _bgView.backgroundColor = [UIColor yellowColor]; | |
| 114 | + _bgView = [[UIImageView alloc] init]; | |
| 116 | 115 | _bgView.clipsToBounds = YES; |
| 116 | + _bgView.alpha = 0.4; | |
| 117 | 117 | } |
| 118 | 118 | return _bgView; |
| 119 | 119 | } | ... | ... |
LiveVideoCloud/LiveVideoCloud/Classes/Sections/InteractionSections/Gift/Present/PresentViewCell.m
| ... | ... | @@ -72,8 +72,8 @@ |
| 72 | 72 | { |
| 73 | 73 | PresentLable *lable = [[PresentLable alloc] init]; |
| 74 | 74 | lable.backgroundColor = [UIColor clearColor]; |
| 75 | - lable.borderColor = [UIColor yellowColor]; | |
| 76 | - lable.textColor = [UIColor greenColor]; | |
| 75 | + lable.borderColor = [UIColor orangeColor]; | |
| 76 | + lable.textColor = [UIColor yellowColor]; | |
| 77 | 77 | lable.font = [UIFont systemFontOfSize:17.0]; |
| 78 | 78 | lable.textAlignment = NSTextAlignmentCenter; |
| 79 | 79 | lable.alpha = 0.0; |
| ... | ... | @@ -253,7 +253,7 @@ |
| 253 | 253 | [UIView animateKeyframesWithDuration:interval delay:0 options:0 animations:^{ |
| 254 | 254 | |
| 255 | 255 | [UIView addKeyframeWithRelativeStartTime:0 relativeDuration:1/2.0 animations:^{ |
| 256 | - self.transform = CGAffineTransformMakeScale(4, 4); | |
| 256 | + self.transform = CGAffineTransformMakeScale(2.5, 2.5); | |
| 257 | 257 | }]; |
| 258 | 258 | [UIView addKeyframeWithRelativeStartTime:1/2.0 relativeDuration:1/2.0 animations:^{ |
| 259 | 259 | self.transform = CGAffineTransformMakeScale(0.8, 0.8); | ... | ... |
LiveVideoCloud/LiveVideoCloud/Classes/Sections/InteractionSections/LiveBaseView.h
| ... | ... | @@ -7,8 +7,10 @@ |
| 7 | 7 | // |
| 8 | 8 | |
| 9 | 9 | #import "BaseView.h" |
| 10 | +#import "AnimationBaseView.h" | |
| 11 | + | |
| 10 | 12 | @class PresentView; |
| 11 | -@class AnimationBaseView; | |
| 13 | +//@class AnimationBaseView; | |
| 12 | 14 | |
| 13 | 15 | typedef NS_ENUM(NSInteger, BounceBtnType) {//弹窗按钮类型 |
| 14 | 16 | BounceBtnTypeAite = 1,//@TA按钮点击 |
| ... | ... | @@ -22,10 +24,11 @@ typedef NS_ENUM(NSInteger, JumpControllerType) {//跳转控制器类型 |
| 22 | 24 | }; |
| 23 | 25 | @interface LiveBaseView : BaseView |
| 24 | 26 | |
| 27 | +@property (nonatomic ,strong ) UIButton * _Nullable closeBtn; | |
| 25 | 28 | @property (nonatomic) JumpControllerType jumpType; |
| 26 | 29 | @property (nonatomic ,strong) UIViewController * _Nullable viewController; |
| 27 | 30 | @property (nonatomic ,strong ,readonly) PresentView * _Nullable presentView; |
| 28 | -@property (nonatomic ,strong ,readonly) AnimationBaseView * _Nullable animationBaseView; | |
| 31 | +@property (nonatomic ,strong) AnimationBaseView * _Nullable animationBaseView; | |
| 29 | 32 | |
| 30 | 33 | + (instancetype _Nullable)liveBaseView; |
| 31 | 34 | ... | ... |
LiveVideoCloud/LiveVideoCloud/Classes/Sections/InteractionSections/LiveBaseView.m
| ... | ... | @@ -21,7 +21,6 @@ |
| 21 | 21 | #import "userInfoModel.h" |
| 22 | 22 | #import "PrivateView.h" |
| 23 | 23 | #import "ChatBarrageView.h" |
| 24 | -#import "AnimationBaseView.h" | |
| 25 | 24 | |
| 26 | 25 | #define BottomToolHeight 60 |
| 27 | 26 | |
| ... | ... | @@ -37,9 +36,9 @@ typedef NS_ENUM(NSInteger, PopType) {//弹窗类型 |
| 37 | 36 | @interface LiveBaseView ()<bottomBtnDeledate,PresentViewDelegate,UIScrollViewDelegate,UITableViewDelegate,UITableViewDataSource,UITextFieldDelegate,userClickDelegate,CNLiveChatManagerDelegate,PopViewDelegate> |
| 38 | 37 | |
| 39 | 38 | @property (nonatomic ,strong ) UIScrollView * _Nullable scrollView; |
| 40 | -@property (nonatomic ,strong ,readwrite) AnimationBaseView * _Nullable animationBaseView;//展示层View | |
| 39 | +//@property (nonatomic ,strong ,readwrite) AnimationBaseView * _Nullable animationBaseView;//展示层View | |
| 41 | 40 | @property (nonatomic ,strong ) BottomToolView* _Nullable bottomToolView; |
| 42 | -@property (nonatomic ,strong ) UIButton * _Nullable closeBtn; | |
| 41 | + | |
| 43 | 42 | @property (nonatomic ,strong ) GiftListView * _Nullable giftListView; |
| 44 | 43 | @property (nonatomic ,weak ) UIView * _Nullable giftPopView; |
| 45 | 44 | @property (nonatomic ,strong ,readwrite) PresentView * _Nullable presentView;//连击View |
| ... | ... | @@ -720,7 +719,6 @@ typedef NS_ENUM(NSInteger, PopType) {//弹窗类型 |
| 720 | 719 | closeBtn.frame = CGRectMake(SCREEN_WIDTH - 43,SCREEN_HEIGHT - self.bottomToolView.height + (self.bottomToolView.height - 33)*0.5, 33, 33); |
| 721 | 720 | [closeBtn setBackgroundImage:[UIImage imageNamed:@"LiveCloseNormal"] forState:UIControlStateNormal]; |
| 722 | 721 | [closeBtn setBackgroundImage:[UIImage imageNamed:@"LiveCloseTouch"] forState:UIControlStateHighlighted]; |
| 723 | - [closeBtn addTarget:self action:@selector(closeAction) forControlEvents:UIControlEventTouchUpInside]; | |
| 724 | 722 | _closeBtn = closeBtn; |
| 725 | 723 | } |
| 726 | 724 | return _closeBtn; | ... | ... |
LiveVideoCloud/LiveVideoCloud/Classes/Sections/InteractionSections/PrivateView/PriChatCell.m
| ... | ... | @@ -14,6 +14,7 @@ |
| 14 | 14 | @interface PriChatCell () |
| 15 | 15 | |
| 16 | 16 | @property (nonatomic ,strong) chatMsgModel * _Nullable model; |
| 17 | +@property (nonatomic ,strong) UIImageView * _Nullable bgImgView; | |
| 17 | 18 | @property (nonatomic ,strong) UIImageView * _Nullable icon; |
| 18 | 19 | @property (nonatomic ,strong) UILabel * _Nullable content; |
| 19 | 20 | |
| ... | ... | @@ -36,51 +37,67 @@ |
| 36 | 37 | _model = model; |
| 37 | 38 | [self bindView]; |
| 38 | 39 | [self.icon sd_setImageWithURL:[NSURL URLWithString:model.icon] placeholderImage:nil]; |
| 40 | + self.icon.backgroundColor = [UIColor greenColor]; | |
| 39 | 41 | self.content.text = model.content; |
| 40 | 42 | CGSize size = [self.content labelSizeWithWidth:_model.priCellWidth]; |
| 43 | + | |
| 41 | 44 | if (_model.isMine) { |
| 42 | - if (_model.priCellHeight < 37) {//1行 // 36.7 | |
| 43 | - | |
| 44 | - self.content.frame = CGRectMake(self.width - 30 - size.width - 10, 2.5, size.width, size.height);//self.height - 5 | |
| 45 | + if (_model.priCellHeight < 57) {//1行 // 36.7 | |
| 46 | + self.icon.frame = CGRectMake(self.width - 30, 6, 25, 25); | |
| 47 | + self.icon.centerY = (self.height - 25)*0.5 + 12.5; | |
| 48 | + self.content.frame = CGRectMake(self.width - 30 - size.width - 20 - 25, 2.5, size.width, size.height); | |
| 45 | 49 | self.content.textAlignment = NSTextAlignmentRight; |
| 46 | - self.content.centerY = self.icon.centerY; | |
| 50 | + self.content.centerY = self.height * 0.5; | |
| 51 | + self.bgImgView.frame = CGRectMake(self.content.left - 15, self.content.top - 10, self.content.width + 45, self.content.height + 20); | |
| 47 | 52 | }else |
| 48 | 53 | { |
| 49 | - self.content.frame = CGRectMake(self.width - 30 - size.width - 10, 10, size.width, size.height);//self.height - 5 | |
| 54 | + self.icon.frame = CGRectMake(self.width - 30, 6, 25, 25); | |
| 55 | + self.icon.centerY = (self.height - 25)*0.5 + 12.5; | |
| 56 | + self.content.frame = CGRectMake(self.width - 30 - size.width - 20 - 25, 10, size.width, size.height); | |
| 50 | 57 | self.content.textAlignment = NSTextAlignmentLeft; |
| 58 | + self.content.centerY = self.height * 0.5; | |
| 59 | + self.bgImgView.frame = CGRectMake(self.content.left - 15, self.content.top - 10, self.content.width + 50, self.content.height + 20); | |
| 51 | 60 | } |
| 61 | + | |
| 62 | + self.bgImgView.image = [[UIImage imageNamed:@"right"]stretchableImageWithLeftCapWidth:167 topCapHeight:100]; | |
| 52 | 63 | }else |
| 53 | 64 | { |
| 54 | - if (_model.priCellHeight < 37) {//1行 | |
| 65 | + if (_model.priCellHeight < 57) {//1行 | |
| 55 | 66 | self.icon.frame = CGRectMake(5, 6, 25, 25); |
| 56 | 67 | self.icon.centerY = (self.height - 25)*0.5 + 12.5;//13.353516; |
| 57 | - self.content.frame = CGRectMake(5 + 30 + 10, 2.5, size.width, size.height);//self.height - 5 | |
| 68 | + self.content.frame = CGRectMake(5 + 25 + 35, 2.5, size.width, size.height); | |
| 58 | 69 | self.content.textAlignment = NSTextAlignmentLeft; |
| 59 | 70 | self.content.centerY = self.icon.centerY; |
| 71 | + self.bgImgView.frame = CGRectMake(self.content.left - 25, self.content.top - 10, self.content.width + 45, self.content.height + 20); | |
| 60 | 72 | }else |
| 61 | 73 | { |
| 62 | 74 | self.icon.frame = CGRectMake(5, 6, 25, 25); |
| 63 | 75 | self.icon.centerY = (self.height - 25)*0.5 + 12.5;//13.353516; |
| 64 | - self.content.frame = CGRectMake(5 + 30 + 10, 10, size.width, size.height);//self.height - 5 | |
| 76 | + self.content.frame = CGRectMake(5 + 25 + 35 + 15, 10, size.width, size.height); | |
| 65 | 77 | self.content.textAlignment = NSTextAlignmentLeft; |
| 78 | + self.content.centerY = self.height * 0.5; | |
| 79 | + self.bgImgView.frame = CGRectMake(self.content.left - 35 - 5, self.content.top - 10, self.content.width + 50, self.content.height + 20); | |
| 66 | 80 | } |
| 81 | + | |
| 82 | + self.bgImgView.image = [[UIImage imageNamed:@"left"] stretchableImageWithLeftCapWidth:189 topCapHeight:164]; | |
| 83 | + | |
| 67 | 84 | } |
| 85 | + _icon.layer.cornerRadius = _icon.height * 0.5; | |
| 86 | + [self sendSubviewToBack:self.bgImgView]; | |
| 68 | 87 | } |
| 69 | 88 | |
| 70 | 89 | - (void)bindView |
| 71 | 90 | { |
| 72 | 91 | if (_model.isMine) { |
| 73 | 92 | self.icon.frame = CGRectMake(self.width - 30, 6, 25, 25); |
| 74 | - NSLog(@"self.icon.centerY%f,%f",self.height * 0.5,_model.priCellHeight);//13.353516 21.707031 155.363281 | |
| 93 | +// NSLog(@"self.icon.centerY%f,%f",self.height * 0.5,_model.priCellHeight);//13.353516 21.707031 155.363281 | |
| 75 | 94 | self.icon.centerY = (self.height - 25)*0.5 + 12.5;//13.353516; |
| 76 | 95 | self.content.frame = CGRectMake(self.width - 30 - CHAT_POP_WIDTH, 2.5, CHAT_POP_WIDTH - 10, self.height - 5); |
| 77 | - self.content.backgroundColor = [UIColor blueColorZX]; | |
| 78 | 96 | |
| 79 | 97 | }else{ |
| 80 | 98 | self.icon.frame = CGRectMake(5, 6, 25, 25); |
| 81 | 99 | self.icon.centerY = (self.height - 25)*0.5 + 12.5;//13.353516; |
| 82 | 100 | self.content.frame = CGRectMake(5 + 30, 2.5, CHAT_POP_WIDTH, self.height - 5); |
| 83 | - self.content.backgroundColor = [UIColor greenColor]; | |
| 84 | 101 | } |
| 85 | 102 | } |
| 86 | 103 | |
| ... | ... | @@ -105,12 +122,22 @@ |
| 105 | 122 | { |
| 106 | 123 | _icon = [[UIImageView alloc] init]; |
| 107 | 124 | _icon.layer.masksToBounds = YES; |
| 108 | - _icon.layer.cornerRadius = 15.f; | |
| 109 | 125 | [self addSubview:_icon]; |
| 110 | 126 | } |
| 111 | 127 | return _icon; |
| 112 | 128 | } |
| 113 | 129 | |
| 130 | +- (UIImageView * _Nullable)bgImgView | |
| 131 | +{ | |
| 132 | + if (!_bgImgView) | |
| 133 | + { | |
| 134 | + _bgImgView = [[UIImageView alloc] init]; | |
| 135 | + | |
| 136 | + [self addSubview:_bgImgView]; | |
| 137 | + } | |
| 138 | + return _bgImgView; | |
| 139 | +} | |
| 140 | + | |
| 114 | 141 | - (void)awakeFromNib { |
| 115 | 142 | [super awakeFromNib]; |
| 116 | 143 | // Initialization code | ... | ... |
LiveVideoCloud/LiveVideoCloud/Classes/Sections/InteractionSections/PrivateView/PrivateView.m
| ... | ... | @@ -80,7 +80,6 @@ static NSString *message_content = @"message_content"; |
| 80 | 80 | self.top = SCREEN_HEIGHT - newFrameKeyboard.size.height - self.height; |
| 81 | 81 | }]; |
| 82 | 82 | self.isEditing = YES; |
| 83 | - NSLog(@"showtop:%f",self.top); | |
| 84 | 83 | } |
| 85 | 84 | } |
| 86 | 85 | |
| ... | ... | @@ -91,7 +90,6 @@ static NSString *message_content = @"message_content"; |
| 91 | 90 | [UIView animateWithDuration:0.1 animations:^{ |
| 92 | 91 | self.top = SCREEN_HEIGHT - 300; |
| 93 | 92 | }]; |
| 94 | - NSLog(@"hiddentop:%f",self.top); | |
| 95 | 93 | self.isEditing = NO; |
| 96 | 94 | } |
| 97 | 95 | } |
| ... | ... | @@ -104,7 +102,7 @@ static NSString *message_content = @"message_content"; |
| 104 | 102 | NSDictionary *dic = @{message_content:textField.text}; |
| 105 | 103 | weakself |
| 106 | 104 | NSString *message = [Tools dictionaryToJson:dic]; |
| 107 | - [[CNLiveChatManager sharedCNLiveChatManager] sendMessage:message type:CNLive_ConversationType_PRIVATE targetId:@"20170327" success:^(CNLiveChatMessage *message) { | |
| 105 | + [[CNLiveChatManager sharedCNLiveChatManager] sendMessage:message type:CNLive_ConversationType_PRIVATE targetId:@"20170328" success:^(CNLiveChatMessage *message) { | |
| 108 | 106 | |
| 109 | 107 | dispatch_async(dispatch_get_main_queue(), ^{ |
| 110 | 108 | strongself |
| ... | ... | @@ -256,7 +254,8 @@ static NSString *message_content = @"message_content"; |
| 256 | 254 | if (!_textField) |
| 257 | 255 | { |
| 258 | 256 | _textField = [[UITextField alloc] initWithFrame:CGRectMake(4, 4, self.bottomTool.width - self.sendBtn.width - 8, self.bottomTool.height - 8)]; |
| 259 | - _textField.borderStyle = UITextBorderStyleLine; | |
| 257 | + _textField.borderStyle = UITextBorderStyleNone; | |
| 258 | + _textField.placeholder = @"和主播说点什么吧"; | |
| 260 | 259 | _textField.returnKeyType = UIReturnKeySend; |
| 261 | 260 | _textField.delegate = self; |
| 262 | 261 | } | ... | ... |
LiveVideoCloud/LiveVideoCloud/Classes/Sections/LiveSections/Controller/LVCLiveViewController.m
| ... | ... | @@ -58,12 +58,14 @@ |
| 58 | 58 | [self.view addSubview:self.filterView]; |
| 59 | 59 | |
| 60 | 60 | // 初始化推流 |
| 61 | - NSString *activityId = [NSString stringWithFormat:@"%d%d%d%d%d",arc4random()%9,arc4random()%9,arc4random()%9,arc4random()%9,arc4random()%9]; | |
| 61 | + NSInteger time = [[NSDate date] timeIntervalSince1970]; | |
| 62 | + NSString *timeString = [NSString stringWithFormat:@"%ld", (long)time]; | |
| 63 | + NSString *random = [NSString stringWithFormat:@"%d%d%d%d%d",arc4random()%9,arc4random()%9,arc4random()%9,arc4random()%9,arc4random()%9]; | |
| 64 | + NSString *activityId = [NSString stringWithFormat:@"%@%@",timeString,random]; | |
| 62 | 65 | |
| 63 | 66 | _kitCN = [[CNLiveGPUStreamerKit alloc] initWithDefaultConfigWithActivityId:activityId channelId:@"iOStest" isHorizontalScreen:@"0"]; |
| 64 | 67 | |
| 65 | - // _kitCN.activityName = @"iOS test"; | |
| 66 | - // _kitCN.coverImgUrl = @"djfiwooa"; | |
| 68 | + _kitCN.coverImgUrl = @"https://ss1.bdstatic.com/70cFuXSh_Q1YnxGkpoWK1HF6hhy/it/u=3269891096,90190857&fm=23&gp=0.jpg"; | |
| 67 | 69 | |
| 68 | 70 | // 设置推流配置 |
| 69 | 71 | [self setStreamerCfg]; |
| ... | ... | @@ -114,6 +116,7 @@ |
| 114 | 116 | _liveBaseView.jumpType = JumpControllerTypePresent; |
| 115 | 117 | _liveBaseView.viewController = self; |
| 116 | 118 | _liveBaseView.backgroundColor = [UIColor clearColor]; |
| 119 | + [_liveBaseView.closeBtn addTarget:self action:@selector(quitBtnClick) forControlEvents:UIControlEventTouchUpInside]; | |
| 117 | 120 | } |
| 118 | 121 | return _liveBaseView; |
| 119 | 122 | } |
| ... | ... | @@ -121,17 +124,32 @@ |
| 121 | 124 | #pragma mark - UIButton Action !!!!!!!!!!!!!!!!!!!!!!!!!!!!!! |
| 122 | 125 | - (void)startCapture:(UIButton *)button { // 开始推流 |
| 123 | 126 | |
| 124 | - [_quitButton removeFromSuperview]; | |
| 127 | + // 设置标题 | |
| 128 | + if (_prepareView.titleTextField.text) { | |
| 129 | + _kitCN.activityName = _prepareView.titleTextField.text; | |
| 130 | + } else { | |
| 131 | + _kitCN.activityName = @"无名"; | |
| 132 | + } | |
| 125 | 133 | |
| 126 | - _isStreaming = YES; | |
| 134 | + [_openFilterButton removeFromSuperview]; | |
| 135 | + [_changeCameraButton removeFromSuperview]; | |
| 136 | + [_openFlashButton removeFromSuperview]; | |
| 137 | + _openFilterButton = nil; | |
| 138 | + _changeCameraButton = nil; | |
| 139 | + _openFlashButton = nil; | |
| 127 | 140 | |
| 128 | 141 | [_prepareView removeFromSuperview]; |
| 129 | 142 | |
| 130 | 143 | [_kitCN startStream:^{ |
| 131 | 144 | NSLog(@"开启推流成功 ------- success"); |
| 132 | 145 | |
| 146 | + _isStreaming = YES; | |
| 147 | + [_quitButton removeFromSuperview]; | |
| 133 | 148 | [self.view insertSubview:self.liveBaseView atIndex:1]; |
| 134 | - | |
| 149 | + [self.liveBaseView.animationBaseView addSubview:self.openFilterButton]; | |
| 150 | + [self.liveBaseView.animationBaseView addSubview:self.changeCameraButton]; | |
| 151 | + [self.liveBaseView.animationBaseView addSubview:self.openFlashButton]; | |
| 152 | + | |
| 135 | 153 | } failure:^(NSDictionary *errorDic) { |
| 136 | 154 | //NSString *str=[[NSMutableString alloc] initWithData:errorDic[@"errorMessage"] encoding:NSUTF8StringEncoding]; |
| 137 | 155 | NSLog(@"%@",errorDic); | ... | ... |
LiveVideoCloud/LiveVideoCloud/Classes/Sections/homeSections/Controller/HomeViewController.m
| ... | ... | @@ -11,10 +11,10 @@ |
| 11 | 11 | #import "LVCLivePlayerController.h" |
| 12 | 12 | #import "LVCUGCLivePlayerController.h" |
| 13 | 13 | #import "LVCTVLiveViewController.h" |
| 14 | -#import "LVCUGCLiveListController.h" | |
| 15 | 14 | #import "V8HorizontalPickerView.h" |
| 16 | 15 | #import "MHPagingScrollView.h" |
| 17 | 16 | #import "LVCTelevisionView.h" |
| 17 | +#import "LVCUGCLiveListView.h" | |
| 18 | 18 | |
| 19 | 19 | @interface HomeViewController ()<V8HorizontalPickerViewDataSource, V8HorizontalPickerViewDelegate,MHPagingScrollViewDelegate,UIScrollViewDelegate> |
| 20 | 20 | { |
| ... | ... | @@ -54,7 +54,7 @@ |
| 54 | 54 | [UGCLiveListBtn addTarget:self action:@selector(UGCLiveListAction) forControlEvents:UIControlEventTouchUpInside]; |
| 55 | 55 | [self.view addSubview:UGCLiveListBtn]; |
| 56 | 56 | |
| 57 | - _titleArr = @[@"推荐",@"频道"]; | |
| 57 | + _titleArr = @[@"直播",@"推荐",@"频道"]; | |
| 58 | 58 | CGFloat width = 0; |
| 59 | 59 | for (NSString *title in _titleArr) { |
| 60 | 60 | CGSize size = [title sizeWithAttributes:@{NSFontAttributeName:self.titleView.elementFont}]; |
| ... | ... | @@ -90,8 +90,7 @@ |
| 90 | 90 | |
| 91 | 91 | - (void)UGCLiveListAction |
| 92 | 92 | { |
| 93 | - LVCUGCLiveListController *listVC = [[LVCUGCLiveListController alloc] init]; | |
| 94 | - [self.navigationController pushViewController:listVC animated:YES]; | |
| 93 | + | |
| 95 | 94 | } |
| 96 | 95 | |
| 97 | 96 | #pragma mark - V8HorizontalPickerViewDataSource |
| ... | ... | @@ -167,6 +166,13 @@ |
| 167 | 166 | tvView = [[LVCTelevisionView alloc] init]; |
| 168 | 167 | } |
| 169 | 168 | return tvView; |
| 169 | + }else if ([_titleArr[index] isEqualToString:@"直播"]) { | |
| 170 | + | |
| 171 | + LVCUGCLiveListView *liveListView = (LVCUGCLiveListView *)[pagingScrollView pageViewByIndex:index]; | |
| 172 | + if (!liveListView) { | |
| 173 | + liveListView = [[LVCUGCLiveListView alloc] initWithFrame:CGRectMake(0, 64, SCREEN_WIDTH, SCREEN_HEIGHT - 114)]; | |
| 174 | + } | |
| 175 | + return liveListView; | |
| 170 | 176 | } |
| 171 | 177 | return nil; |
| 172 | 178 | } | ... | ... |
LiveVideoCloud/LiveVideoCloud/Classes/Sections/homeSections/Controller/LVCUGCLiveListController.h renamed to LiveVideoCloud/LiveVideoCloud/Classes/Sections/homeSections/Controller/LVCUGCLiveListView.h
| 1 | 1 | // |
| 2 | -// LVCUGCLiveListController.h | |
| 2 | +// LVCUGCLiveListView.h | |
| 3 | 3 | // LiveVideoCloud |
| 4 | 4 | // |
| 5 | -// Created by cnliveJunBo on 17/3/27. | |
| 5 | +// Created by cnliveJunBo on 17/3/29. | |
| 6 | 6 | // Copyright © 2017年 cnlive. All rights reserved. |
| 7 | 7 | // |
| 8 | 8 | |
| 9 | 9 | #import <UIKit/UIKit.h> |
| 10 | 10 | |
| 11 | -@interface LVCUGCLiveListController : UIViewController | |
| 11 | +@interface LVCUGCLiveListView : UIView | |
| 12 | 12 | |
| 13 | 13 | @end | ... | ... |
LiveVideoCloud/LiveVideoCloud/Classes/Sections/homeSections/Controller/LVCUGCLiveListController.m renamed to LiveVideoCloud/LiveVideoCloud/Classes/Sections/homeSections/Controller/LVCUGCLiveListView.m
| 1 | 1 | // |
| 2 | -// LVCUGCLiveListController.m | |
| 2 | +// LVCUGCLiveListView.m | |
| 3 | 3 | // LiveVideoCloud |
| 4 | 4 | // |
| 5 | -// Created by cnliveJunBo on 17/3/27. | |
| 5 | +// Created by cnliveJunBo on 17/3/29. | |
| 6 | 6 | // Copyright © 2017年 cnlive. All rights reserved. |
| 7 | 7 | // |
| 8 | 8 | |
| 9 | -#import "LVCUGCLiveListController.h" | |
| 9 | +#import "LVCUGCLiveListView.h" | |
| 10 | 10 | #import "LiveLIstService.h" |
| 11 | -#import "LVCUGCLiveListModel.h" | |
| 12 | 11 | #import "LVCUGCLivePlayerCell.h" |
| 12 | +#import "LVCUGCLiveListModel.h" | |
| 13 | 13 | #import "LVCUGCLivePlayerModel.h" |
| 14 | +#import "LVCUGCLivePlayerController.h" | |
| 14 | 15 | |
| 15 | 16 | static NSString *cellId = @"cellId"; |
| 16 | 17 | |
| 17 | -@interface LVCUGCLiveListController ()<UICollectionViewDelegate, UICollectionViewDataSource> | |
| 18 | +@interface LVCUGCLiveListView()<UICollectionViewDelegate, UICollectionViewDataSource> { | |
| 19 | + | |
| 20 | + NSMutableArray *_arrayM; | |
| 21 | +} | |
| 18 | 22 | |
| 19 | 23 | @property (nonatomic, strong) UICollectionView *collectionView; |
| 20 | 24 | |
| 25 | + | |
| 26 | + | |
| 21 | 27 | @end |
| 22 | 28 | |
| 23 | -@implementation LVCUGCLiveListController | |
| 29 | +@implementation LVCUGCLiveListView | |
| 24 | 30 | |
| 25 | -- (void)viewDidLoad { | |
| 26 | - [super viewDidLoad]; | |
| 27 | - self.view.backgroundColor = [UIColor whiteColor]; | |
| 28 | - | |
| 29 | - [self loadData]; | |
| 30 | - | |
| 31 | - [self.view addSubview:self.collectionView]; | |
| 31 | +- (instancetype)initWithFrame:(CGRect)frame | |
| 32 | +{ | |
| 33 | + self = [super initWithFrame:frame]; | |
| 34 | + if (self) { | |
| 35 | + self.backgroundColor = [UIColor whiteColor]; | |
| 36 | + | |
| 37 | + _arrayM = [[NSMutableArray alloc] init]; | |
| 38 | + | |
| 39 | + [self loadData]; | |
| 40 | + | |
| 41 | + [self addSubview:self.collectionView]; | |
| 42 | + } | |
| 43 | + return self; | |
| 32 | 44 | } |
| 33 | 45 | |
| 34 | 46 | - (void)loadData { |
| ... | ... | @@ -44,8 +56,9 @@ static NSString *cellId = @"cellId"; |
| 44 | 56 | LVCUGCLiveListModel *model = [LVCUGCLiveListModel modelWithDic:data]; |
| 45 | 57 | |
| 46 | 58 | NSLog(@"%@",model.activityList); |
| 59 | + _arrayM = model.activityList.mutableCopy; | |
| 47 | 60 | }]; |
| 48 | - | |
| 61 | + | |
| 49 | 62 | } |
| 50 | 63 | |
| 51 | 64 | #pragma mark - UICollectionViewDelegate, UICollectionViewDataSource !!!!!!!!!!!!!!!!!!!!!!!!!!! |
| ... | ... | @@ -56,7 +69,7 @@ static NSString *cellId = @"cellId"; |
| 56 | 69 | |
| 57 | 70 | - (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section { |
| 58 | 71 | |
| 59 | - return 6; | |
| 72 | + return _arrayM.count; | |
| 60 | 73 | } |
| 61 | 74 | |
| 62 | 75 | - (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath { |
| ... | ... | @@ -65,12 +78,18 @@ static NSString *cellId = @"cellId"; |
| 65 | 78 | |
| 66 | 79 | NSLog(@"cell ------> %@",cell); |
| 67 | 80 | |
| 68 | - LVCUGCLivePlayerModel *model = [[LVCUGCLivePlayerModel alloc] init]; | |
| 81 | + LVCUGCLivePlayerModel *model = _arrayM[indexPath.row]; | |
| 69 | 82 | cell.model = model; |
| 70 | 83 | |
| 71 | 84 | return cell; |
| 72 | 85 | } |
| 73 | 86 | |
| 87 | +- (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath { | |
| 88 | + | |
| 89 | + LVCUGCLivePlayerController *player = [[LVCUGCLivePlayerController alloc] init]; | |
| 90 | + [self.viewController.navigationController pushViewController:player animated:YES]; | |
| 91 | +} | |
| 92 | + | |
| 74 | 93 | #pragma mark - GetMethod !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! |
| 75 | 94 | - (UICollectionView *)collectionView { |
| 76 | 95 | |
| ... | ... | @@ -78,8 +97,8 @@ static NSString *cellId = @"cellId"; |
| 78 | 97 | UICollectionViewFlowLayout *layout = [[UICollectionViewFlowLayout alloc] init]; |
| 79 | 98 | layout.minimumLineSpacing = 10; |
| 80 | 99 | layout.minimumInteritemSpacing = 0; |
| 81 | - layout.itemSize = CGSizeMake(SCREEN_WIDTH, SCREEN_HEIGHT * 0.6); | |
| 82 | - _collectionView = [[UICollectionView alloc] initWithFrame:self.view.bounds collectionViewLayout:layout]; | |
| 100 | + layout.itemSize = CGSizeMake(SCREEN_WIDTH, SCREEN_WIDTH + 100); | |
| 101 | + _collectionView = [[UICollectionView alloc] initWithFrame:self.bounds collectionViewLayout:layout]; | |
| 83 | 102 | _collectionView.backgroundColor = [UIColor lightGrayColor]; |
| 84 | 103 | _collectionView.showsHorizontalScrollIndicator = NO; |
| 85 | 104 | _collectionView.dataSource = self; |
| ... | ... | @@ -89,9 +108,5 @@ static NSString *cellId = @"cellId"; |
| 89 | 108 | return _collectionView; |
| 90 | 109 | } |
| 91 | 110 | |
| 92 | -- (void)didReceiveMemoryWarning { | |
| 93 | - [super didReceiveMemoryWarning]; | |
| 94 | - // Dispose of any resources that can be recreated. | |
| 95 | -} | |
| 96 | 111 | |
| 97 | 112 | @end | ... | ... |
LiveVideoCloud/LiveVideoCloud/Classes/Sections/homeSections/Controller/LVCUGCLivePlayerController.m
| ... | ... | @@ -83,7 +83,7 @@ |
| 83 | 83 | |
| 84 | 84 | }]; |
| 85 | 85 | |
| 86 | - //[self.view addSubview:self.bgView]; | |
| 86 | + [self.view addSubview:self.bgView]; | |
| 87 | 87 | } |
| 88 | 88 | |
| 89 | 89 | #pragma mark - UIPanGestureRecognizer !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! |
| ... | ... | @@ -168,7 +168,6 @@ |
| 168 | 168 | // 停止后的视图,拿到自己的加载图来显示 |
| 169 | 169 | [_viewSecond addSubview:_secondLoadView]; |
| 170 | 170 | |
| 171 | - [_viewSecond removeGestureRecognizer:_pan]; | |
| 172 | 171 | _viewOne.frame = CGRectMake(0, SCREEN_HEIGHT, SCREEN_WIDTH, SCREEN_HEIGHT); |
| 173 | 172 | _tempView = _viewOne; |
| 174 | 173 | _viewOne = _viewSecond; |
| ... | ... | @@ -267,9 +266,11 @@ |
| 267 | 266 | NSLog(@"loadStateDidChange: MPMovieLoadStatePlaythroughOK: %d\n", (int)loadState); |
| 268 | 267 | |
| 269 | 268 | } else if ((loadState & MPMovieLoadStateStalled) != 0) { |
| 269 | + | |
| 270 | 270 | NSLog(@"loadStateDidChange: MPMovieLoadStateStalled: %d\n", (int)loadState); |
| 271 | 271 | |
| 272 | 272 | } else { |
| 273 | + | |
| 273 | 274 | NSLog(@"loadStateDidChange: ???: %d\n", (int)loadState); |
| 274 | 275 | } |
| 275 | 276 | } |
| ... | ... | @@ -370,7 +371,7 @@ |
| 370 | 371 | if (_player.anchorStatus == 2) { // 已结束 |
| 371 | 372 | |
| 372 | 373 | } |
| 373 | - // _bgView.anchorStatus = _player.anchorStatus; | |
| 374 | + _bgView.anchorStatus = _player.anchorStatus; | |
| 374 | 375 | } |
| 375 | 376 | |
| 376 | 377 | |
| ... | ... | @@ -379,12 +380,19 @@ |
| 379 | 380 | |
| 380 | 381 | } |
| 381 | 382 | |
| 383 | +#pragma mark - Button Action !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | |
| 384 | +- (void)backToList { | |
| 385 | + | |
| 386 | + [self.navigationController popViewControllerAnimated:YES]; | |
| 387 | +} | |
| 388 | + | |
| 382 | 389 | #pragma mark - GetMethod !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! |
| 383 | 390 | - (LVCUGCBackgroundView *)bgView { |
| 384 | 391 | |
| 385 | 392 | if (!_bgView) { |
| 386 | 393 | _bgView = [[LVCUGCBackgroundView alloc] initWithFrame:self.view.bounds]; |
| 387 | 394 | _bgView.hidden = YES; |
| 395 | + [_bgView.backButton addTarget:self action:@selector(backToList) forControlEvents:UIControlEventTouchUpInside]; | |
| 388 | 396 | } |
| 389 | 397 | return _bgView; |
| 390 | 398 | } |
| ... | ... | @@ -392,7 +400,7 @@ |
| 392 | 400 | - (UIView *)viewOne { |
| 393 | 401 | if (!_viewOne) { |
| 394 | 402 | _viewOne = [[UIView alloc] initWithFrame:CGRectMake(0, -SCREEN_HEIGHT, SCREEN_WIDTH, SCREEN_HEIGHT)]; |
| 395 | - _viewOne.backgroundColor = [UIColor orangeColor]; | |
| 403 | + _viewOne.backgroundColor = [UIColor blackColor]; | |
| 396 | 404 | _firstLoadView = [[LVCUGCPlayerLoadingView alloc] initWithFrame:self.view.bounds]; |
| 397 | 405 | [_viewOne addSubview:_firstLoadView]; |
| 398 | 406 | _oneY = -SCREEN_HEIGHT; |
| ... | ... | @@ -403,7 +411,7 @@ |
| 403 | 411 | - (UIView *)viewSecond { |
| 404 | 412 | if (!_viewSecond) { |
| 405 | 413 | _viewSecond = [[UIView alloc] initWithFrame:CGRectMake(0, 0, SCREEN_WIDTH, SCREEN_HEIGHT)]; |
| 406 | - _viewSecond.backgroundColor = [UIColor redColor]; | |
| 414 | + _viewSecond.backgroundColor = [UIColor blackColor]; | |
| 407 | 415 | _secondLoadView = [[LVCUGCPlayerLoadingView alloc] initWithFrame:self.view.bounds]; |
| 408 | 416 | [_viewSecond addSubview:_secondLoadView]; |
| 409 | 417 | _SecondY = 0; |
| ... | ... | @@ -414,7 +422,7 @@ |
| 414 | 422 | - (UIView *)viewThird { |
| 415 | 423 | if (!_viewThird) { |
| 416 | 424 | _viewThird = [[UIView alloc] initWithFrame:CGRectMake(0, SCREEN_HEIGHT, SCREEN_WIDTH, SCREEN_HEIGHT)]; |
| 417 | - _viewThird.backgroundColor = [UIColor blueColor]; | |
| 425 | + _viewThird.backgroundColor = [UIColor blackColor]; | |
| 418 | 426 | _thirdLoadView = [[LVCUGCPlayerLoadingView alloc] initWithFrame:self.view.bounds]; |
| 419 | 427 | [_viewThird addSubview:_thirdLoadView]; |
| 420 | 428 | _ThirdY = SCREEN_HEIGHT; | ... | ... |
LiveVideoCloud/LiveVideoCloud/Classes/Sections/homeSections/Controller/LiveLIstService.m
| ... | ... | @@ -17,8 +17,8 @@ |
| 17 | 17 | NSString *timeString = [NSString stringWithFormat:@"%ld", (long)time]; |
| 18 | 18 | NSMutableDictionary *parameter=[@{@"platform_id": [NSBundle mainBundle].bundleIdentifier, |
| 19 | 19 | @"timestamp": timeString, |
| 20 | - @"appId": @"60_irn9edco29"} mutableCopy]; | |
| 21 | - NSString *string = [NSString stringWithFormat:@"%@&key=%@", [self sortParameters:parameter], @"69fe70bda67e059286ad509d9f5377f815955645b52f94"]; | |
| 20 | + @"appId": AppId} mutableCopy]; | |
| 21 | + NSString *string = [NSString stringWithFormat:@"%@&key=%@", [self sortParameters:parameter], AppKey]; | |
| 22 | 22 | NSString *signString = [[self sha1:string] uppercaseString]; |
| 23 | 23 | [parameter setObject:signString forKey:@"sign"]; |
| 24 | 24 | ... | ... |
LiveVideoCloud/LiveVideoCloud/Classes/Sections/homeSections/View/LVCUGCBackgroundView.m
LiveVideoCloud/LiveVideoCloud/Classes/Sections/homeSections/View/LVCUGCLivePlayerCell.m
| ... | ... | @@ -8,14 +8,40 @@ |
| 8 | 8 | |
| 9 | 9 | #import "LVCUGCLivePlayerCell.h" |
| 10 | 10 | |
| 11 | +@interface LVCUGCLivePlayerCell() | |
| 12 | + | |
| 13 | +@property (nonatomic, strong) UIImageView *iconView; | |
| 14 | + | |
| 15 | +@property (nonatomic, strong) UILabel *nameLabel; | |
| 16 | + | |
| 17 | +@property (nonatomic, strong) UILabel *locationLabel; | |
| 18 | + | |
| 19 | +@property (nonatomic, strong) UILabel *countLabel; | |
| 20 | + | |
| 21 | +@property (nonatomic, strong) UILabel *lookLabel; | |
| 22 | + | |
| 23 | +@property (nonatomic, strong) UIImageView *imageView; | |
| 24 | + | |
| 25 | +@property (nonatomic, strong) UILabel *stateLabel; | |
| 26 | + | |
| 27 | +@property (nonatomic, strong) UILabel *titleLabel; | |
| 28 | + | |
| 29 | +@end | |
| 30 | + | |
| 11 | 31 | @implementation LVCUGCLivePlayerCell |
| 12 | 32 | |
| 13 | -- (instancetype)initWithFrame:(CGRect)frame | |
| 14 | -{ | |
| 33 | +- (instancetype)initWithFrame:(CGRect)frame { | |
| 34 | + | |
| 15 | 35 | self = [super initWithFrame:frame]; |
| 16 | 36 | if (self) { |
| 17 | 37 | self.contentView.backgroundColor = [UIColor whiteColor]; |
| 18 | - | |
| 38 | + [self.contentView addSubview:self.iconView]; | |
| 39 | + [self.contentView addSubview:self.nameLabel]; | |
| 40 | + [self.contentView addSubview:self.locationLabel]; | |
| 41 | + [self.contentView addSubview:self.countLabel]; | |
| 42 | + [self.contentView addSubview:self.lookLabel]; | |
| 43 | + [self.contentView addSubview:self.imageView]; | |
| 44 | + [self.contentView addSubview:self.titleLabel]; | |
| 19 | 45 | } |
| 20 | 46 | return self; |
| 21 | 47 | } |
| ... | ... | @@ -26,9 +52,99 @@ |
| 26 | 52 | if (_model != model) { |
| 27 | 53 | _model = model; |
| 28 | 54 | } |
| 55 | + _titleLabel.text = model.activityName; | |
| 56 | + NSString *path = [[NSBundle mainBundle] pathForResource:@"timg" ofType:@"jpeg"]; | |
| 57 | + UIImage *image = [UIImage imageWithContentsOfFile:path]; | |
| 58 | + [_imageView sd_setImageWithURL:[NSURL URLWithString:model.coverImgUrl] placeholderImage:image]; | |
| 29 | 59 | } |
| 30 | 60 | |
| 31 | 61 | #pragma mark - SetMethod !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! |
| 62 | +- (UIImageView *)iconView { | |
| 63 | + | |
| 64 | + if (!_iconView) { | |
| 65 | + NSString *path = [[NSBundle mainBundle] pathForResource:@"头像" ofType:@"jpg"]; | |
| 66 | + UIImage *image = [UIImage imageWithContentsOfFile:path]; | |
| 67 | + _iconView = [[UIImageView alloc] initWithImage:image]; | |
| 68 | + _iconView.frame = CGRectMake(10, 10, 50, 50); | |
| 69 | + _iconView.layer.cornerRadius = 25; | |
| 70 | + _iconView.layer.masksToBounds = YES; | |
| 71 | + } | |
| 72 | + return _iconView; | |
| 73 | +} | |
| 74 | + | |
| 75 | +- (UILabel *)nameLabel { | |
| 76 | + if (!_nameLabel) { | |
| 77 | + _nameLabel = [[UILabel alloc] initWithFrame:CGRectMake(70, 15, SCREEN_WIDTH - 140, 20)]; | |
| 78 | + _nameLabel.text = @"这是我的昵称"; | |
| 79 | + _nameLabel.textColor = [UIColor grayColor]; | |
| 80 | + } | |
| 81 | + return _nameLabel; | |
| 82 | +} | |
| 32 | 83 | |
| 84 | +- (UILabel *)locationLabel { | |
| 85 | + if (!_locationLabel) { | |
| 86 | + _locationLabel = [[UILabel alloc] initWithFrame:CGRectMake(70, 40, SCREEN_WIDTH - 140, 20)]; | |
| 87 | + _locationLabel.text = @"这是我的地址"; | |
| 88 | + _locationLabel.font = [UIFont systemFontOfSize:13]; | |
| 89 | + _locationLabel.textColor = [UIColor grayColor]; | |
| 90 | + } | |
| 91 | + return _locationLabel; | |
| 92 | +} | |
| 93 | + | |
| 94 | +- (UILabel *)countLabel { | |
| 95 | + if (!_countLabel) { | |
| 96 | + _countLabel = [[UILabel alloc] initWithFrame:CGRectMake(SCREEN_WIDTH - 65, 15, 60, 20)]; | |
| 97 | + _countLabel.text = @"13244"; | |
| 98 | + _countLabel.textAlignment = NSTextAlignmentRight; | |
| 99 | + _countLabel.textColor = [UIColor orangeColor]; | |
| 100 | + } | |
| 101 | + return _countLabel; | |
| 102 | +} | |
| 103 | + | |
| 104 | +- (UILabel *)lookLabel { | |
| 105 | + if (!_lookLabel) { | |
| 106 | + _lookLabel = [[UILabel alloc] initWithFrame:CGRectMake(SCREEN_WIDTH - 45, 35, 40, 20)]; | |
| 107 | + _lookLabel.text = @"在看"; | |
| 108 | + _lookLabel.font = [UIFont systemFontOfSize:13]; | |
| 109 | + _lookLabel.textAlignment = NSTextAlignmentRight; | |
| 110 | + _lookLabel.textColor = [UIColor grayColor]; | |
| 111 | + } | |
| 112 | + return _lookLabel; | |
| 113 | +} | |
| 114 | + | |
| 115 | +- (UIImageView *)imageView { | |
| 116 | + if (!_imageView) { | |
| 117 | + _imageView = [[UIImageView alloc] init]; | |
| 118 | + _imageView.frame = CGRectMake(0, 70, SCREEN_WIDTH, SCREEN_WIDTH); | |
| 119 | + _imageView.contentMode = UIViewContentModeScaleAspectFill; | |
| 120 | + _imageView.clipsToBounds = YES; | |
| 121 | + [_imageView addSubview:self.stateLabel]; | |
| 122 | + } | |
| 123 | + return _imageView; | |
| 124 | +} | |
| 125 | + | |
| 126 | +- (UILabel *)stateLabel { | |
| 127 | + if (!_stateLabel) { | |
| 128 | + _stateLabel = [[UILabel alloc] initWithFrame:CGRectMake(SCREEN_WIDTH - 70, 10, 60, 20)]; | |
| 129 | + _stateLabel.font = [UIFont systemFontOfSize:13]; | |
| 130 | + _stateLabel.textAlignment = NSTextAlignmentCenter; | |
| 131 | + _stateLabel.textColor = [UIColor whiteColor]; | |
| 132 | + _stateLabel.layer.cornerRadius = 10; | |
| 133 | + _stateLabel.layer.masksToBounds = YES; | |
| 134 | + _stateLabel.text = @"直播"; | |
| 135 | + _stateLabel.layer.borderColor = [UIColor whiteColor].CGColor; | |
| 136 | + _stateLabel.layer.borderWidth = 1; | |
| 137 | + } | |
| 138 | + return _stateLabel; | |
| 139 | +} | |
| 140 | + | |
| 141 | +- (UILabel *)titleLabel { | |
| 142 | + if (!_titleLabel) { | |
| 143 | + _titleLabel = [[UILabel alloc] initWithFrame:CGRectMake(5, SCREEN_WIDTH + 75, SCREEN_WIDTH, 20)]; | |
| 144 | + _titleLabel.textColor = [UIColor grayColor]; | |
| 145 | + _titleLabel.text = @"这是一个标题"; | |
| 146 | + } | |
| 147 | + return _titleLabel; | |
| 148 | +} | |
| 33 | 149 | |
| 34 | 150 | @end | ... | ... |
LiveVideoCloud/LiveVideoCloud/animation.xcassets/Interaction/Chat/left.imageset/Contents.json
0 → 100644
| 1 | +{ | |
| 2 | + "images" : [ | |
| 3 | + { | |
| 4 | + "idiom" : "universal", | |
| 5 | + "filename" : "left.png", | |
| 6 | + "scale" : "1x" | |
| 7 | + }, | |
| 8 | + { | |
| 9 | + "idiom" : "universal", | |
| 10 | + "scale" : "2x" | |
| 11 | + }, | |
| 12 | + { | |
| 13 | + "idiom" : "universal", | |
| 14 | + "scale" : "3x" | |
| 15 | + } | |
| 16 | + ], | |
| 17 | + "info" : { | |
| 18 | + "version" : 1, | |
| 19 | + "author" : "xcode" | |
| 20 | + } | |
| 21 | +} | |
| 0 | 22 | \ No newline at end of file | ... | ... |
LiveVideoCloud/LiveVideoCloud/animation.xcassets/Interaction/Chat/left.imageset/left.png
0 → 100644
28 KB
LiveVideoCloud/LiveVideoCloud/animation.xcassets/Interaction/Chat/right.imageset/Contents.json
0 → 100644
| 1 | +{ | |
| 2 | + "images" : [ | |
| 3 | + { | |
| 4 | + "idiom" : "universal", | |
| 5 | + "filename" : "right.png", | |
| 6 | + "scale" : "1x" | |
| 7 | + }, | |
| 8 | + { | |
| 9 | + "idiom" : "universal", | |
| 10 | + "scale" : "2x" | |
| 11 | + }, | |
| 12 | + { | |
| 13 | + "idiom" : "universal", | |
| 14 | + "scale" : "3x" | |
| 15 | + } | |
| 16 | + ], | |
| 17 | + "info" : { | |
| 18 | + "version" : 1, | |
| 19 | + "author" : "xcode" | |
| 20 | + } | |
| 21 | +} | |
| 0 | 22 | \ No newline at end of file | ... | ... |
LiveVideoCloud/LiveVideoCloud/animation.xcassets/Interaction/Chat/right.imageset/right.png
0 → 100644
27.9 KB
LiveVideoCloud/LiveVideoCloud/animation.xcassets/Interaction/Gift/背景220x40.imageset/Contents.json
0 → 100644
| 1 | +{ | |
| 2 | + "images" : [ | |
| 3 | + { | |
| 4 | + "idiom" : "universal", | |
| 5 | + "filename" : "背景220x40.png", | |
| 6 | + "scale" : "1x" | |
| 7 | + }, | |
| 8 | + { | |
| 9 | + "idiom" : "universal", | |
| 10 | + "scale" : "2x" | |
| 11 | + }, | |
| 12 | + { | |
| 13 | + "idiom" : "universal", | |
| 14 | + "scale" : "3x" | |
| 15 | + } | |
| 16 | + ], | |
| 17 | + "info" : { | |
| 18 | + "version" : 1, | |
| 19 | + "author" : "xcode" | |
| 20 | + } | |
| 21 | +} | |
| 0 | 22 | \ No newline at end of file | ... | ... |
LiveVideoCloud/LiveVideoCloud/animation.xcassets/Interaction/Gift/背景220x40.imageset/背景220x40.png
0 → 100644
1.42 KB