Commit 24a0a2ac7c6ad0937a01d4f525056277f5d1cb61

Authored by 张旭
1 parent cf9d0686

完善礼物UI,添加歼灭机

Showing 58 changed files with 621 additions and 138 deletions
LiveVideoCloud/LiveVideoCloud.xcodeproj/project.pbxproj
@@ -131,6 +131,7 @@ @@ -131,6 +131,7 @@
131 D22830FC1E77C2D900627701 /* BottomToolView.m in Sources */ = {isa = PBXBuildFile; fileRef = D22830FB1E77C2D900627701 /* BottomToolView.m */; }; 131 D22830FC1E77C2D900627701 /* BottomToolView.m in Sources */ = {isa = PBXBuildFile; fileRef = D22830FB1E77C2D900627701 /* BottomToolView.m */; };
132 D22830FF1E77C69E00627701 /* GiftListView.m in Sources */ = {isa = PBXBuildFile; fileRef = D22830FE1E77C69E00627701 /* GiftListView.m */; }; 132 D22830FF1E77C69E00627701 /* GiftListView.m in Sources */ = {isa = PBXBuildFile; fileRef = D22830FE1E77C69E00627701 /* GiftListView.m */; };
133 D22831091E77D8D500627701 /* GiftModel.m in Sources */ = {isa = PBXBuildFile; fileRef = D22831081E77D8D500627701 /* GiftModel.m */; }; 133 D22831091E77D8D500627701 /* GiftModel.m in Sources */ = {isa = PBXBuildFile; fileRef = D22831081E77D8D500627701 /* GiftModel.m */; };
  134 + D236967E1E7F9E4100E4BF71 /* GiftPayButton.m in Sources */ = {isa = PBXBuildFile; fileRef = D236967D1E7F9E4100E4BF71 /* GiftPayButton.m */; };
134 D25530001E7909AC00DF38A5 /* GiftAnimOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = D2552FFF1E7909AC00DF38A5 /* GiftAnimOperation.m */; }; 135 D25530001E7909AC00DF38A5 /* GiftAnimOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = D2552FFF1E7909AC00DF38A5 /* GiftAnimOperation.m */; };
135 D25530031E79115100DF38A5 /* AnimQueueManager.m in Sources */ = {isa = PBXBuildFile; fileRef = D25530021E79115100DF38A5 /* AnimQueueManager.m */; }; 136 D25530031E79115100DF38A5 /* AnimQueueManager.m in Sources */ = {isa = PBXBuildFile; fileRef = D25530021E79115100DF38A5 /* AnimQueueManager.m */; };
136 D25530061E7911A800DF38A5 /* GiftAnimationAction.m in Sources */ = {isa = PBXBuildFile; fileRef = D25530051E7911A800DF38A5 /* GiftAnimationAction.m */; }; 137 D25530061E7911A800DF38A5 /* GiftAnimationAction.m in Sources */ = {isa = PBXBuildFile; fileRef = D25530051E7911A800DF38A5 /* GiftAnimationAction.m */; };
@@ -223,7 +224,6 @@ @@ -223,7 +224,6 @@
223 8112D4301E7927A5002E00F6 /* LVCPlayerLoadingView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LVCPlayerLoadingView.m; sourceTree = "<group>"; }; 224 8112D4301E7927A5002E00F6 /* LVCPlayerLoadingView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LVCPlayerLoadingView.m; sourceTree = "<group>"; };
224 812E504F1E7699DC004F5FCD /* CNLiveMsgTools.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = CNLiveMsgTools.framework; sourceTree = "<group>"; }; 225 812E504F1E7699DC004F5FCD /* CNLiveMsgTools.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = CNLiveMsgTools.framework; sourceTree = "<group>"; };
225 812E50501E7699DC004F5FCD /* CNLivePlayerSDK.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = CNLivePlayerSDK.framework; sourceTree = "<group>"; }; 226 812E50501E7699DC004F5FCD /* CNLivePlayerSDK.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = CNLivePlayerSDK.framework; sourceTree = "<group>"; };
226 - 812E50511E7699DC004F5FCD /* KSYGPUResource.bundle */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.plug-in"; path = KSYGPUResource.bundle; sourceTree = "<group>"; };  
227 81FB5B3A1E7A6FFC00F98E1D /* SevenSwitch.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SevenSwitch.h; sourceTree = "<group>"; }; 227 81FB5B3A1E7A6FFC00F98E1D /* SevenSwitch.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SevenSwitch.h; sourceTree = "<group>"; };
228 81FB5B3B1E7A6FFC00F98E1D /* SevenSwitch.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SevenSwitch.m; sourceTree = "<group>"; }; 228 81FB5B3B1E7A6FFC00F98E1D /* SevenSwitch.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SevenSwitch.m; sourceTree = "<group>"; };
229 D2029B811E6EAAA50027CD92 /* LiveVideoCloud.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = LiveVideoCloud.app; sourceTree = BUILT_PRODUCTS_DIR; }; 229 D2029B811E6EAAA50027CD92 /* LiveVideoCloud.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = LiveVideoCloud.app; sourceTree = BUILT_PRODUCTS_DIR; };
@@ -442,8 +442,8 @@ @@ -442,8 +442,8 @@
442 D217A2471E7B76C7003B44CB /* PresentView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PresentView.m; sourceTree = "<group>"; }; 442 D217A2471E7B76C7003B44CB /* PresentView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PresentView.m; sourceTree = "<group>"; };
443 D217A2481E7B76C7003B44CB /* PresentViewCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PresentViewCell.h; sourceTree = "<group>"; }; 443 D217A2481E7B76C7003B44CB /* PresentViewCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PresentViewCell.h; sourceTree = "<group>"; };
444 D217A2491E7B76C7003B44CB /* PresentViewCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PresentViewCell.m; sourceTree = "<group>"; }; 444 D217A2491E7B76C7003B44CB /* PresentViewCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PresentViewCell.m; sourceTree = "<group>"; };
445 - D217A24C1E7B77C7003B44CB /* ComboCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ComboCell.h; sourceTree = "<group>"; };  
446 - D217A24D1E7B77C7003B44CB /* ComboCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ComboCell.m; sourceTree = "<group>"; }; 445 + D217A24C1E7B77C7003B44CB /* ComboCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ComboCell.h; path = Present/ComboCell.h; sourceTree = "<group>"; };
  446 + D217A24D1E7B77C7003B44CB /* ComboCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = ComboCell.m; path = Present/ComboCell.m; sourceTree = "<group>"; };
447 D22830EF1E778C0F00627701 /* LiveBaseView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LiveBaseView.h; sourceTree = "<group>"; }; 447 D22830EF1E778C0F00627701 /* LiveBaseView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LiveBaseView.h; sourceTree = "<group>"; };
448 D22830F01E778C0F00627701 /* LiveBaseView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LiveBaseView.m; sourceTree = "<group>"; }; 448 D22830F01E778C0F00627701 /* LiveBaseView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LiveBaseView.m; sourceTree = "<group>"; };
449 D22830FA1E77C2D900627701 /* BottomToolView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BottomToolView.h; sourceTree = "<group>"; }; 449 D22830FA1E77C2D900627701 /* BottomToolView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BottomToolView.h; sourceTree = "<group>"; };
@@ -452,6 +452,8 @@ @@ -452,6 +452,8 @@
452 D22830FE1E77C69E00627701 /* GiftListView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GiftListView.m; sourceTree = "<group>"; }; 452 D22830FE1E77C69E00627701 /* GiftListView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GiftListView.m; sourceTree = "<group>"; };
453 D22831071E77D8D500627701 /* GiftModel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GiftModel.h; sourceTree = "<group>"; }; 453 D22831071E77D8D500627701 /* GiftModel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GiftModel.h; sourceTree = "<group>"; };
454 D22831081E77D8D500627701 /* GiftModel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GiftModel.m; sourceTree = "<group>"; }; 454 D22831081E77D8D500627701 /* GiftModel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GiftModel.m; sourceTree = "<group>"; };
  455 + D236967C1E7F9E4100E4BF71 /* GiftPayButton.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GiftPayButton.h; sourceTree = "<group>"; };
  456 + D236967D1E7F9E4100E4BF71 /* GiftPayButton.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GiftPayButton.m; sourceTree = "<group>"; };
455 D2552FFE1E7909AC00DF38A5 /* GiftAnimOperation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GiftAnimOperation.h; sourceTree = "<group>"; }; 457 D2552FFE1E7909AC00DF38A5 /* GiftAnimOperation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GiftAnimOperation.h; sourceTree = "<group>"; };
456 D2552FFF1E7909AC00DF38A5 /* GiftAnimOperation.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GiftAnimOperation.m; sourceTree = "<group>"; }; 458 D2552FFF1E7909AC00DF38A5 /* GiftAnimOperation.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GiftAnimOperation.m; sourceTree = "<group>"; };
457 D25530011E79115100DF38A5 /* AnimQueueManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AnimQueueManager.h; sourceTree = "<group>"; }; 459 D25530011E79115100DF38A5 /* AnimQueueManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AnimQueueManager.h; sourceTree = "<group>"; };
@@ -1205,8 +1207,6 @@ @@ -1205,8 +1207,6 @@
1205 D217A2471E7B76C7003B44CB /* PresentView.m */, 1207 D217A2471E7B76C7003B44CB /* PresentView.m */,
1206 D217A2481E7B76C7003B44CB /* PresentViewCell.h */, 1208 D217A2481E7B76C7003B44CB /* PresentViewCell.h */,
1207 D217A2491E7B76C7003B44CB /* PresentViewCell.m */, 1209 D217A2491E7B76C7003B44CB /* PresentViewCell.m */,
1208 - D217A24C1E7B77C7003B44CB /* ComboCell.h */,  
1209 - D217A24D1E7B77C7003B44CB /* ComboCell.m */,  
1210 ); 1210 );
1211 path = Present; 1211 path = Present;
1212 sourceTree = "<group>"; 1212 sourceTree = "<group>";
@@ -1216,6 +1216,8 @@ @@ -1216,6 +1216,8 @@
1216 children = ( 1216 children = (
1217 D22830FD1E77C69E00627701 /* GiftListView.h */, 1217 D22830FD1E77C69E00627701 /* GiftListView.h */,
1218 D22830FE1E77C69E00627701 /* GiftListView.m */, 1218 D22830FE1E77C69E00627701 /* GiftListView.m */,
  1219 + D236967C1E7F9E4100E4BF71 /* GiftPayButton.h */,
  1220 + D236967D1E7F9E4100E4BF71 /* GiftPayButton.m */,
1219 ); 1221 );
1220 path = GiftViews; 1222 path = GiftViews;
1221 sourceTree = "<group>"; 1223 sourceTree = "<group>";
@@ -1291,6 +1293,8 @@ @@ -1291,6 +1293,8 @@
1291 isa = PBXGroup; 1293 isa = PBXGroup;
1292 children = ( 1294 children = (
1293 D217A2441E7B76C7003B44CB /* Present */, 1295 D217A2441E7B76C7003B44CB /* Present */,
  1296 + D217A24C1E7B77C7003B44CB /* ComboCell.h */,
  1297 + D217A24D1E7B77C7003B44CB /* ComboCell.m */,
1294 D25530041E7911A800DF38A5 /* GiftAnimationAction.h */, 1298 D25530041E7911A800DF38A5 /* GiftAnimationAction.h */,
1295 D25530051E7911A800DF38A5 /* GiftAnimationAction.m */, 1299 D25530051E7911A800DF38A5 /* GiftAnimationAction.m */,
1296 D25530011E79115100DF38A5 /* AnimQueueManager.h */, 1300 D25530011E79115100DF38A5 /* AnimQueueManager.h */,
@@ -1565,8 +1569,6 @@ @@ -1565,8 +1569,6 @@
1565 D2029CB01E6EADE10027CD92 /* MJRefresh.bundle in Resources */, 1569 D2029CB01E6EADE10027CD92 /* MJRefresh.bundle in Resources */,
1566 D2575C7C1E76A4F300E3A8FC /* NHFighterView.nib in Resources */, 1570 D2575C7C1E76A4F300E3A8FC /* NHFighterView.nib in Resources */,
1567 D25BF87D1E7B8C78007FB138 /* KSYGPUResource.bundle in Resources */, 1571 D25BF87D1E7B8C78007FB138 /* KSYGPUResource.bundle in Resources */,
1568 - D2029B8F1E6EAAA50027CD92 /* Main.storyboard in Resources */,  
1569 - 812E50541E7699DC004F5FCD /* KSYGPUResource.bundle in Resources */,  
1570 ); 1572 );
1571 runOnlyForDeploymentPostprocessing = 0; 1573 runOnlyForDeploymentPostprocessing = 0;
1572 }; 1574 };
@@ -1647,6 +1649,7 @@ @@ -1647,6 +1649,7 @@
1647 D2575C4A1E7685DE00E3A8FC /* UIView+Bubbling.m in Sources */, 1649 D2575C4A1E7685DE00E3A8FC /* UIView+Bubbling.m in Sources */,
1648 D2029CA61E6EADE10027CD92 /* MJRefreshHeader.m in Sources */, 1650 D2029CA61E6EADE10027CD92 /* MJRefreshHeader.m in Sources */,
1649 D2029CC41E6EADE10027CD92 /* UIImageView+WebCache.m in Sources */, 1651 D2029CC41E6EADE10027CD92 /* UIImageView+WebCache.m in Sources */,
  1652 + D236967E1E7F9E4100E4BF71 /* GiftPayButton.m in Sources */,
1650 D2029CC81E6EADE10027CD92 /* SVProgressAnimatedView.m in Sources */, 1653 D2029CC81E6EADE10027CD92 /* SVProgressAnimatedView.m in Sources */,
1651 D2029C961E6EADE10027CD92 /* MBProgressHUD.m in Sources */, 1654 D2029C961E6EADE10027CD92 /* MBProgressHUD.m in Sources */,
1652 810B65071E779B1F00133E15 /* ViewController+MASAdditions.m in Sources */, 1655 810B65071E779B1F00133E15 /* ViewController+MASAdditions.m in Sources */,
LiveVideoCloud/LiveVideoCloud/Classes/Sections/InteractionSections/Gift/AnimQueueManager.m
@@ -57,20 +57,21 @@ @@ -57,20 +57,21 @@
57 @param model modelobj 57 @param model modelobj
58 */ 58 */
59 - (void)addAnimationWithModel:(GiftModel *)model animContentView:(UIView *)animContentView{ 59 - (void)addAnimationWithModel:(GiftModel *)model animContentView:(UIView *)animContentView{
60 - 60 +
  61 + GiftAnimOperation *op = [GiftAnimOperation addGiftAnimOperationWithGiftModel:model animContentView:animContentView];
61 switch (model.giftStyle) { 62 switch (model.giftStyle) {
62 case GiftStylePorsch: 63 case GiftStylePorsch:
63 { 64 {
64 - GiftAnimOperation *op = [GiftAnimOperation addGiftAnimOperationWithGiftModel:model animContentView:animContentView];  
65 [self.expenAnimationQueue addOperation:op]; 65 [self.expenAnimationQueue addOperation:op];
66 } 66 }
67 break; 67 break;
68 -// case GiftStyleFighter:  
69 -// [self.expenAnimationQueue addOperation:op];  
70 -// break; 68 + case GiftStyleFighter:
  69 + {
  70 + [self.expenAnimationQueue addOperation:op];
  71 + }
  72 + break;
71 case GiftStylePlane: 73 case GiftStylePlane:
72 { 74 {
73 - GiftAnimOperation *op = [GiftAnimOperation addGiftAnimOperationWithGiftModel:model animContentView:animContentView];  
74 [self.expenAnimationQueue addOperation:op]; 75 [self.expenAnimationQueue addOperation:op];
75 } 76 }
76 break; 77 break;
LiveVideoCloud/LiveVideoCloud/Classes/Sections/InteractionSections/Gift/GiftAnimOperation.m
@@ -11,8 +11,8 @@ @@ -11,8 +11,8 @@
11 #import "NHCarViews.h" 11 #import "NHCarViews.h"
12 #import "NHPlaneViews.h" 12 #import "NHPlaneViews.h"
13 #import "GiftAnimationAction.h" 13 #import "GiftAnimationAction.h"
14 -//#import "NHFighterView.h"  
15 -//#import "NHFighterView+animDelegagte.h" 14 +#import "NHFighterView.h"
  15 +#import "NHFighterView+animDelegagte.h"
16 16
17 @interface GiftAnimOperation () 17 @interface GiftAnimOperation ()
18 { 18 {
@@ -21,7 +21,7 @@ @@ -21,7 +21,7 @@
21 } 21 }
22 22
23 @property (nonatomic, strong)NHCarViews *giftCarView; //跑车动画 23 @property (nonatomic, strong)NHCarViews *giftCarView; //跑车动画
24 -//@property (nonatomic, strong)NHFighterView *giftFighterView; //歼灭机动画 24 +@property (nonatomic, strong)NHFighterView *giftFighterView; //歼灭机动画
25 @property (nonatomic, strong)NHPlaneViews *giftPlaneView; //客机动画 25 @property (nonatomic, strong)NHPlaneViews *giftPlaneView; //客机动画
26 @property (nonatomic, strong)GiftModel *model; //model 26 @property (nonatomic, strong)GiftModel *model; //model
27 @property (nonatomic,strong) UIView *animContentView; //需要显示动画的view 27 @property (nonatomic,strong) UIView *animContentView; //需要显示动画的view
@@ -72,9 +72,9 @@ @@ -72,9 +72,9 @@
72 case GiftStylePorsch: 72 case GiftStylePorsch:
73 [self porschAnimation]; 73 [self porschAnimation];
74 break; 74 break;
75 -// case GiftStyleFighter:  
76 -// [self fighterAnimation];  
77 -// break; 75 + case GiftStyleFighter:
  76 + [self fighterAnimation];
  77 + break;
78 case GiftStylePlane: 78 case GiftStylePlane:
79 [self planeAnimation]; 79 [self planeAnimation];
80 break; 80 break;
@@ -105,24 +105,25 @@ @@ -105,24 +105,25 @@
105 }); 105 });
106 } 106 }
107 107
108 -//- (void)fighterAnimation  
109 -//{  
110 -// weakself  
111 -// dispatch_async(dispatch_get_main_queue(), ^{  
112 -// strongself  
113 -//  
114 -// [self.giftFighterView addAnimationsMoveToPoint:CGPointMake(SCREEN_WIDTH, 60) endPoint:CGPointMake( -500, 600)];  
115 -// [self.animContentView addSubview:self.giftFighterView];  
116 -// [self.giftFighterView startFighterAnimationWithCompletion:^{  
117 -// [self willChangeValueForKey:@"isFinished"];  
118 -//  
119 -// _finished = YES;  
120 -//  
121 -// [self didChangeValueForKey:@"isFinished"];  
122 -// }];  
123 -//  
124 -// });  
125 -//} 108 +- (void)fighterAnimation
  109 +{
  110 + weakself
  111 + dispatch_async(dispatch_get_main_queue(), ^{
  112 + strongself
  113 +
  114 + [self.giftFighterView addAnimationsMoveToPoint:CGPointMake(SCREEN_WIDTH, 60) endPoint:CGPointMake( -500, 600)];
  115 + [self.animContentView addSubview:self.giftFighterView];
  116 +
  117 + dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(12 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
  118 + [self willChangeValueForKey:@"isFinished"];
  119 +
  120 + _finished = YES;
  121 +
  122 + [self didChangeValueForKey:@"isFinished"];
  123 +
  124 + });
  125 + });
  126 +}
126 127
127 - (void)planeAnimation 128 - (void)planeAnimation
128 { 129 {
@@ -169,12 +170,12 @@ @@ -169,12 +170,12 @@
169 170
170 @return 连击view 171 @return 连击view
171 */ 172 */
172 -//- (NHFighterView *)giftFighterView{  
173 -// if (_giftFighterView == nil) {  
174 -// _giftFighterView = [NHFighterView loadFighterViewWithPoint:CGPointMake(10, 100)];  
175 -// }  
176 -// return _giftFighterView;  
177 -//} 173 +- (NHFighterView *)giftFighterView{
  174 + if (_giftFighterView == nil) {
  175 + _giftFighterView = [NHFighterView loadFighterViewWithPoint:CGPointMake(10, 100)];
  176 + }
  177 + return _giftFighterView;
  178 +}
178 179
179 /** 180 /**
180 客机动画 181 客机动画
LiveVideoCloud/LiveVideoCloud/Classes/Sections/InteractionSections/Gift/GiftAnimationAction.h
@@ -23,11 +23,6 @@ typedef void(^giftAnimationCompletion)(); @@ -23,11 +23,6 @@ typedef void(^giftAnimationCompletion)();
23 - (void)startPorschAnimationWithCompletion:(giftAnimationCompletion)Completion; 23 - (void)startPorschAnimationWithCompletion:(giftAnimationCompletion)Completion;
24 24
25 /** 25 /**
26 - 歼灭机动画  
27 - */  
28 -//- (void)startFighterAnimationWithCompletion:(giftAnimationCompletion)Completion;  
29 -  
30 -/**  
31 客机动画 26 客机动画
32 */ 27 */
33 - (void)startPlaneAnimationWithCompletion:(giftAnimationCompletion)Completion; 28 - (void)startPlaneAnimationWithCompletion:(giftAnimationCompletion)Completion;
LiveVideoCloud/LiveVideoCloud/Classes/Sections/InteractionSections/Gift/GiftAnimationAction.m
@@ -11,45 +11,6 @@ @@ -11,45 +11,6 @@
11 @implementation GiftAnimationAction 11 @implementation GiftAnimationAction
12 12
13 /** 13 /**
14 - 连击横屏动画  
15 - */  
16 -- (void)startComboAnimationWithCompletion:(giftAnimationCompletion)Completion{  
17 - _giftAnimationCompletion = Completion;  
18 - [self animationWithDuration:4  
19 - YValues:@[@(0 - self.width), @(115), @(110), @(110), @(0 - self.width)]  
20 - keyTimes:@[@0.0, @0.2, @0.3, @0.8, @1.0]  
21 - timingFunctions:@[  
22 - [CAMediaTimingFunction functionWithName: kCAMediaTimingFunctionEaseOut],  
23 - [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionDefault],  
24 - [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionDefault],  
25 - [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseIn]  
26 - ]  
27 - addView:self];  
28 -}  
29 -  
30 -/**  
31 - 位移动画具体实现  
32 -  
33 - @param duration 动画持续时间  
34 - @param YValues 动画帧数组  
35 - @param keyTimes 动画帧时间  
36 - @param timingFunctions 动画方式数组  
37 - @param addView 需要添加的view  
38 - */  
39 -- (void)animationWithDuration:(float)duration YValues:(NSArray *)YValues keyTimes:(NSArray *)keyTimes timingFunctions:(NSArray *)timingFunctions addView:(UIView *)addView{  
40 - CAKeyframeAnimation *rocketAnim = [CAKeyframeAnimation animation];  
41 - rocketAnim.keyPath = @"position.x";  
42 - rocketAnim.values = YValues;  
43 - rocketAnim.keyTimes = keyTimes;  
44 - rocketAnim.timingFunctions = timingFunctions;  
45 - rocketAnim.duration = duration;  
46 - rocketAnim.fillMode = kCAFillModeForwards;  
47 - rocketAnim.removedOnCompletion = NO;  
48 - rocketAnim.delegate = self;  
49 - [addView.layer addAnimation:rocketAnim forKey:@"positionY"];  
50 -}  
51 -  
52 -/**  
53 跑车动画 14 跑车动画
54 */ 15 */
55 - (void)startPorschAnimationWithCompletion:(giftAnimationCompletion)Completion 16 - (void)startPorschAnimationWithCompletion:(giftAnimationCompletion)Completion
@@ -58,14 +19,6 @@ @@ -58,14 +19,6 @@
58 } 19 }
59 20
60 /** 21 /**
61 - 歼灭机动画  
62 - */  
63 -//- (void)startFighterAnimationWithCompletion:(giftAnimationCompletion)Completion  
64 -//{  
65 -// _giftAnimationCompletion = Completion;  
66 -//}  
67 -  
68 -/**  
69 客机动画 22 客机动画
70 */ 23 */
71 - (void)startPlaneAnimationWithCompletion:(giftAnimationCompletion)Completion 24 - (void)startPlaneAnimationWithCompletion:(giftAnimationCompletion)Completion
LiveVideoCloud/LiveVideoCloud/Classes/Sections/InteractionSections/Gift/GiftModel/GiftModel.h
@@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@
11 typedef NS_ENUM(NSInteger, GiftStyle) {//礼物类型 11 typedef NS_ENUM(NSInteger, GiftStyle) {//礼物类型
12 GiftStyleCombo = 1,//普通可连击礼物 12 GiftStyleCombo = 1,//普通可连击礼物
13 GiftStylePorsch ,//豪华跑车礼物 13 GiftStylePorsch ,//豪华跑车礼物
14 -// GiftStyleFighter ,//豪华歼灭机礼物 14 + GiftStyleFighter ,//豪华歼灭机礼物
15 GiftStylePlane ,//豪华客机礼物 15 GiftStylePlane ,//豪华客机礼物
16 }; 16 };
17 17
LiveVideoCloud/LiveVideoCloud/Classes/Sections/InteractionSections/Gift/GiftResource/NHFighterView+animDelegagte.m
@@ -7,6 +7,7 @@ @@ -7,6 +7,7 @@
7 // 7 //
8 8
9 #import "NHFighterView+animDelegagte.h" 9 #import "NHFighterView+animDelegagte.h"
  10 +#import "GiftAnimationAction.h"
10 11
11 @implementation NHFighterView (animDelegagte) 12 @implementation NHFighterView (animDelegagte)
12 13
@@ -17,7 +18,8 @@ @@ -17,7 +18,8 @@
17 18
18 - (void)animationDidStop:(CAAnimation *)anim finished:(BOOL)flag 19 - (void)animationDidStop:(CAAnimation *)anim finished:(BOOL)flag
19 { 20 {
20 - _giftAnimationCompletion(-1); 21 +// _giftAnimationCompletion();
  22 +
21 NSLog(@"did stop"); 23 NSLog(@"did stop");
22 } 24 }
23 25
LiveVideoCloud/LiveVideoCloud/Classes/Sections/InteractionSections/Gift/GiftResource/NHFighterView.h
@@ -7,9 +7,8 @@ @@ -7,9 +7,8 @@
7 // 7 //
8 8
9 #import <UIKit/UIKit.h> 9 #import <UIKit/UIKit.h>
10 -#import "GiftAnimationAction.h"  
11 10
12 -@interface NHFighterView :GiftAnimationAction 11 +@interface NHFighterView :UIView
13 12
14 /** 13 /**
15 * 需要几个控制点就设置几个: 14 * 需要几个控制点就设置几个:
LiveVideoCloud/LiveVideoCloud/Classes/Sections/InteractionSections/Gift/GiftViews/GiftListView.m
@@ -10,13 +10,20 @@ @@ -10,13 +10,20 @@
10 #import "GiftModel.h" 10 #import "GiftModel.h"
11 #import "LiveBaseView.h" 11 #import "LiveBaseView.h"
12 #import "AnimQueueManager.h" 12 #import "AnimQueueManager.h"
  13 +#import "GiftPayButton.h"
13 14
14 #define MAX_LINE_COUNT 4 15 #define MAX_LINE_COUNT 4
15 #define MAX_ROW_COUNT 2 16 #define MAX_ROW_COUNT 2
16 17
  18 +#define GiftPayViewHeight 50
  19 +
17 @interface GiftListView () 20 @interface GiftListView ()
18 21
19 @property (nonatomic ,strong) NSArray <GiftModel *>* _Nullable giftArray; 22 @property (nonatomic ,strong) NSArray <GiftModel *>* _Nullable giftArray;
  23 +@property (nonatomic ,strong) NSArray <NSString *>* _Nullable images;
  24 +@property (nonatomic ,strong) NSArray <NSString *>* _Nullable giftNames;
  25 +@property (nonatomic ,strong) NSArray <NSString *>* _Nullable prices;
  26 +@property (nonatomic ,strong) NSArray <NSString *>* _Nullable types;
20 @property (nonatomic ,weak ) LiveBaseView * _Nullable liveBaseView; 27 @property (nonatomic ,weak ) LiveBaseView * _Nullable liveBaseView;
21 @property (nonatomic, strong) AnimQueueManager * animQueueManager; 28 @property (nonatomic, strong) AnimQueueManager * animQueueManager;
22 @property (nonatomic ,strong) GiftModel * _Nullable model; 29 @property (nonatomic ,strong) GiftModel * _Nullable model;
@@ -28,17 +35,22 @@ @@ -28,17 +35,22 @@
28 - (instancetype)initWithFrame:(CGRect)frame liveBaseView:(LiveBaseView *_Nullable)liveBaseView 35 - (instancetype)initWithFrame:(CGRect)frame liveBaseView:(LiveBaseView *_Nullable)liveBaseView
29 { 36 {
30 if (self = [super initWithFrame:frame]) { 37 if (self = [super initWithFrame:frame]) {
  38 +
  39 + _images = [NSArray arrayWithObjects:@"porsch_small80",@"fighter_small80",@"plane_small80",@"love_gift",@"beer",@"chicken",@"cucumber",@"flower",@"hug",@"mouth",@"ring",@"rose",@"sticks",nil];
  40 + _giftNames = [NSArray arrayWithObjects:@"跑车",@"歼灭机",@"飞机",@"大大的爱心",@"啤酒",@"小鸡",@"小黄瓜",@"鲜花",@"抱抱",@"亲吻",@"戒指",@"玫瑰花",@"荧光棒",nil];
  41 + _prices = [NSArray arrayWithObjects:@"300000000",@"300000000",@"300000",@"30",@"30",@"3",@"3",@"1",@"3",@"1",@"3",@"30",@"300", nil];
  42 + _types = [NSArray arrayWithObjects:@2,@3,@4,@1,@1,@1,@1,@1,@1,@1,@1,@1,@1, nil];
  43 +
31 self.liveBaseView = liveBaseView; 44 self.liveBaseView = liveBaseView;
32 self.animQueueManager = [AnimQueueManager sharedAnimQueueManager]; 45 self.animQueueManager = [AnimQueueManager sharedAnimQueueManager];
33 46
34 - UIScrollView *scrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, self.width, self.height - 30)];  
35 - scrollView.contentSize = CGSizeMake(self.width *(self.giftArray.count/(MAX_ROW_COUNT*MAX_LINE_COUNT) + 1), self.height - 30); 47 + UIScrollView *scrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, self.width, self.height - GiftPayViewHeight)];
  48 + scrollView.contentSize = CGSizeMake(self.width *(self.giftArray.count/(MAX_ROW_COUNT*MAX_LINE_COUNT) + 1), self.height - GiftPayViewHeight);
36 scrollView.pagingEnabled = YES; 49 scrollView.pagingEnabled = YES;
37 scrollView.bounces = NO; 50 scrollView.bounces = NO;
38 scrollView.showsVerticalScrollIndicator = NO; 51 scrollView.showsVerticalScrollIndicator = NO;
39 scrollView.showsHorizontalScrollIndicator = NO; 52 scrollView.showsHorizontalScrollIndicator = NO;
40 [self addSubview:scrollView]; 53 [self addSubview:scrollView];
41 - scrollView.backgroundColor = ZXRandomColor;  
42 54
43 int line = 0; 55 int line = 0;
44 int row = 0; 56 int row = 0;
@@ -56,40 +68,65 @@ @@ -56,40 +68,65 @@
56 } 68 }
57 row = i % MAX_LINE_COUNT; 69 row = i % MAX_LINE_COUNT;
58 CGFloat giftWidth = self.width / MAX_LINE_COUNT * 1.0; 70 CGFloat giftWidth = self.width / MAX_LINE_COUNT * 1.0;
59 - CGFloat giftHeight = (self.height - 30) / MAX_ROW_COUNT * 1.0; 71 + CGFloat giftHeight = (self.height - GiftPayViewHeight) / MAX_ROW_COUNT * 1.0;
60 giftX = row * giftWidth + page * scrollView.width; 72 giftX = row * giftWidth + page * scrollView.width;
61 giftY = line * giftHeight; 73 giftY = line * giftHeight;
62 74
63 UIView *giftView = [self giftViewWithFrame:CGRectMake(giftX, giftY, giftWidth, giftHeight) model:self.giftArray[i]]; 75 UIView *giftView = [self giftViewWithFrame:CGRectMake(giftX, giftY, giftWidth, giftHeight) model:self.giftArray[i]];
  76 + giftView.backgroundColor = [UIColor clearColor];
64 77
65 //礼物图片 78 //礼物图片
66 UIImageView *picImg = [[UIImageView alloc] initWithImage:[UIImage imageNamed:self.giftArray[i].giftImageName]]; 79 UIImageView *picImg = [[UIImageView alloc] initWithImage:[UIImage imageNamed:self.giftArray[i].giftImageName]];
67 picImg.centerX = giftView.width * 0.5; 80 picImg.centerX = giftView.width * 0.5;
68 picImg.centerY = giftView.height * 0.5; 81 picImg.centerY = giftView.height * 0.5;
69 [giftView addSubview:picImg]; 82 [giftView addSubview:picImg];
70 -  
71 [scrollView addSubview:giftView]; 83 [scrollView addSubview:giftView];
72 84
73 UITapGestureRecognizer *gesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(gestureClick:)]; 85 UITapGestureRecognizer *gesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(gestureClick:)];
74 giftView.tag = i + 10; 86 giftView.tag = i + 10;
75 [giftView addGestureRecognizer:gesture]; 87 [giftView addGestureRecognizer:gesture];
76 } 88 }
  89 + UIImageView *giftBottomView = [[UIImageView alloc] initWithFrame:CGRectMake(0, self.height - GiftPayViewHeight, self.width, GiftPayViewHeight)];
  90 + giftBottomView.image = [UIImage imageNamed:@"背景400x30"];
  91 + giftBottomView.alpha = 0.4;
  92 + [self addSubview:giftBottomView];
  93 +
  94 + GiftPayButton *payBtn = [[GiftPayButton alloc] initWithFrame:CGRectMake(10, self.height - GiftPayViewHeight, 80, GiftPayViewHeight)];
  95 + [payBtn addTarget:self action:@selector(payClick) forControlEvents:UIControlEventTouchUpInside];
  96 + [self addSubview:payBtn];
  97 +
  98 + UIButton *sendBtn = [[UIButton alloc] initWithFrame:CGRectMake(self.width - 70, self.height - GiftPayViewHeight + (GiftPayViewHeight - 30)*0.5, 60, 30)];
  99 + [sendBtn addTarget:self action:@selector(sendClick) forControlEvents:UIControlEventTouchUpInside];
  100 + [sendBtn setTitle:@"发送" forState:UIControlStateNormal];
  101 + [sendBtn setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal
  102 + ];
  103 + [sendBtn setBackgroundColor:[UIColor orangeColor]];
  104 + sendBtn.layer.cornerRadius = sendBtn.height * 0.5;
  105 + sendBtn.layer.masksToBounds = YES;
  106 + [self addSubview:sendBtn];
77 } 107 }
78 return self; 108 return self;
79 } 109 }
80 110
  111 +- (void)sendClick
  112 +{
  113 + NSLog(@"sendClick");
  114 +}
  115 +
  116 +- (void)payClick
  117 +{
  118 + NSLog(@"payClick");
  119 +}
  120 +
81 - (UIView *)giftViewWithFrame:(CGRect)frame model:(GiftModel *)model 121 - (UIView *)giftViewWithFrame:(CGRect)frame model:(GiftModel *)model
82 { 122 {
83 _model = model; 123 _model = model;
84 UIView *giftView = [[UIView alloc] initWithFrame:frame]; 124 UIView *giftView = [[UIView alloc] initWithFrame:frame];
85 if (model.giftStyle == GiftStyleCombo) 125 if (model.giftStyle == GiftStyleCombo)
86 - { 126 + {//右上角连击标识
87 UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(giftView.width - 17, 3, 15, 15)]; 127 UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(giftView.width - 17, 3, 15, 15)];
88 - imageView.backgroundColor = ZXRandomColor;  
89 - [giftView addSubview:imageView];//右上角连击标识  
90 - }else  
91 - {  
92 - 128 + imageView.image = [UIImage imageNamed:@"continuous"];
  129 + [giftView addSubview:imageView];
93 } 130 }
94 //礼物价格lbl 131 //礼物价格lbl
95 UILabel *priceLbl = [[UILabel alloc] initWithFrame:CGRectMake(0, giftView.height - 15, 40, 14)]; 132 UILabel *priceLbl = [[UILabel alloc] initWithFrame:CGRectMake(0, giftView.height - 15, 40, 14)];
@@ -101,7 +138,7 @@ @@ -101,7 +138,7 @@
101 priceLbl.centerX = giftView.width * 0.5 - 4; 138 priceLbl.centerX = giftView.width * 0.5 - 4;
102 [giftView addSubview:priceLbl]; 139 [giftView addSubview:priceLbl];
103 //礼物价格图标 140 //礼物价格图标
104 - UIImageView *image = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"littleHeart2"]]; 141 + UIImageView *image = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"diamond"]];
105 image.left = priceLbl.right + 3; 142 image.left = priceLbl.right + 3;
106 image.centerY = priceLbl.centerY; 143 image.centerY = priceLbl.centerY;
107 [giftView addSubview:image]; 144 [giftView addSubview:image];
@@ -125,41 +162,53 @@ @@ -125,41 +162,53 @@
125 } 162 }
126 } 163 }
127 164
  165 +- (NSString *)giftNameWithImageName:(NSString *)imageName
  166 +{
  167 + NSString *giftName = @"";
  168 +
  169 + if ([_images containsObject:imageName]) {
  170 + NSInteger index = [_images indexOfObject:imageName];
  171 + giftName = [_giftNames objectAtIndex:index];
  172 + }
  173 +
  174 + return giftName;
  175 +}
  176 +
128 #pragma mark - getter 177 #pragma mark - getter
129 178
130 - (NSArray *)giftArray 179 - (NSArray *)giftArray
131 { 180 {
132 if (!_giftArray) 181 if (!_giftArray)
133 { 182 {
134 - NSArray *images = [NSArray arrayWithObjects:@"love",@"love",@"love",@"love",@"love",@"love",@"love",@"love",@"love",@"love",nil];  
135 - NSArray *types = [NSArray arrayWithObjects:@2,@3,@1,@1,@1,@1,@1,@1,@1,@1, nil];  
136 - NSArray *senders = [NSArray arrayWithObjects:@"张三",@"李四",@"王五",@"宋刘",@"老七",@"老八",@"老九",@"老十",@"老师",@"小十七", nil];  
137 - NSArray *prices = [NSArray arrayWithObjects:@"300000000",@"3000",@"300000",@"30",@"3",@"3",@"1",@"3",@"1",@"3", nil];  
138 - 183 + NSArray *senders = [NSArray arrayWithObjects:@"张三",@"龙的传人",@"李四",@"王五",@"宋刘",@"老七",@"老八",@"老九",@"老十",@"老师",@"小十七",@"小十八",@"小十九", nil];
139 NSMutableArray *tempArr = [NSMutableArray array]; 184 NSMutableArray *tempArr = [NSMutableArray array];
140 - for (int i = 0; i < images.count; i ++) { 185 + for (int i = 0; i < _images.count; i ++) {
141 186
142 - int type = [types[i] intValue]; 187 + int type = [_types[i] intValue];
143 if (type == 1) { 188 if (type == 1) {
144 //combo 189 //combo
145 - GiftModel *model1 = [GiftModel modelWithSender:senders[i] giftName:@"大大的爱心" icon:@"love" giftImageName:images[i]]; 190 + GiftModel *model1 = [GiftModel modelWithSender:senders[i] giftName:[self giftNameWithImageName:_images[i]] icon:@"love" giftImageName:_images[i]];
146 model1.giftStyle = GiftStyleCombo; 191 model1.giftStyle = GiftStyleCombo;
147 - model1.price = prices[i]; 192 + model1.price = _prices[i];
148 [tempArr addObject:model1]; 193 [tempArr addObject:model1];
149 194
150 }else 195 }else
151 {//expen 196 {//expen
152 - GiftModel *model = [GiftModel modelWithSender:senders[i] giftName:@"豪华礼物" icon:@"love" giftImageName:@"love"]; 197 + GiftModel *model = [GiftModel modelWithSender:senders[i] giftName:[self giftNameWithImageName:_images[i]] icon:@"love" giftImageName:@""];
153 198
154 if (type == 2) { 199 if (type == 2) {
155 model.giftStyle = GiftStylePorsch; 200 model.giftStyle = GiftStylePorsch;
156 - model.giftName = @"跑车"; 201 + model.giftImageName = @"porsch_small80";
157 } 202 }
158 if (type == 3) { 203 if (type == 3) {
  204 + model.giftStyle = GiftStyleFighter;
  205 + model.giftImageName = @"fighter_small80";
  206 + }
  207 + if (type == 4) {
159 model.giftStyle = GiftStylePlane; 208 model.giftStyle = GiftStylePlane;
160 - model.giftName = @"客机"; 209 + model.giftImageName = @"plane_small80";
161 } 210 }
162 - model.price = prices[i]; 211 + model.price = _prices[i];
163 [tempArr addObject:model]; 212 [tempArr addObject:model];
164 } 213 }
165 } 214 }
LiveVideoCloud/LiveVideoCloud/Classes/Sections/InteractionSections/Gift/GiftViews/GiftPayButton.h 0 → 100644
  1 +//
  2 +// GiftPayButton.h
  3 +// LiveVideoCloud
  4 +//
  5 +// Created by 张旭 on 2017/3/20.
  6 +// Copyright © 2017年 cnlive. All rights reserved.
  7 +//
  8 +
  9 +#import <UIKit/UIKit.h>
  10 +
  11 +@interface GiftPayButton : UIButton
  12 +
  13 +@end
LiveVideoCloud/LiveVideoCloud/Classes/Sections/InteractionSections/Gift/GiftViews/GiftPayButton.m 0 → 100644
  1 +//
  2 +// GiftPayButton.m
  3 +// LiveVideoCloud
  4 +//
  5 +// Created by 张旭 on 2017/3/20.
  6 +// Copyright © 2017年 cnlive. All rights reserved.
  7 +//
  8 +
  9 +#import "GiftPayButton.h"
  10 +
  11 +@implementation GiftPayButton
  12 +
  13 +- (void)layoutSubviews
  14 +{
  15 + [super layoutSubviews];
  16 +
  17 + [self setTitle:@"充值 10" forState:UIControlStateNormal];
  18 + self.titleLabel.textAlignment = NSTextAlignmentLeft;
  19 + self.titleLabel.font = [UIFont systemFontOfSize:kContentFont];
  20 + [self setTitleColor:[UIColor yellowColor] forState:UIControlStateNormal];
  21 + [self setImage:[UIImage imageNamed:@"diamond"] forState:UIControlStateNormal];
  22 + [self setImage:[UIImage imageNamed:@"diamond"] forState:UIControlStateHighlighted];
  23 +
  24 + self.titleLabel.left = 0;
  25 + self.titleLabel.top = 0;
  26 + self.titleLabel.width = self.width - 20;
  27 + self.titleLabel.height = self.height;
  28 +
  29 + self.imageView.height = 10;
  30 + self.imageView.width = 13;
  31 + self.imageView.left = self.width - 25;
  32 + self.imageView.centerY = self.titleLabel.centerY;
  33 +}
  34 +
  35 +/*
  36 +// Only override drawRect: if you perform custom drawing.
  37 +// An empty implementation adversely affects performance during animation.
  38 +- (void)drawRect:(CGRect)rect {
  39 + // Drawing code
  40 +}
  41 +*/
  42 +
  43 +@end
LiveVideoCloud/LiveVideoCloud/Classes/Sections/InteractionSections/Gift/Present/PresentModelAble.h
@@ -2,8 +2,8 @@ @@ -2,8 +2,8 @@
2 // PresentModelAble.h 2 // PresentModelAble.h
3 // PresentDemo 3 // PresentDemo
4 // 4 //
5 -// Created by 阮思平 on 16/10/2.  
6 -// Copyright © 2016年 阮思平. All rights reserved. 5 +// Created by 张旭 on 2017/3/17.
  6 +// Copyright © 2017年 张旭. All rights reserved.
7 // 7 //
8 8
9 #import <Foundation/Foundation.h> 9 #import <Foundation/Foundation.h>
LiveVideoCloud/LiveVideoCloud/Classes/Sections/InteractionSections/Gift/Present/PresentView.h
@@ -2,8 +2,8 @@ @@ -2,8 +2,8 @@
2 // PresentView.h 2 // PresentView.h
3 // PresentDemo 3 // PresentDemo
4 // 4 //
5 -// Created by 阮思平 on 16/10/2.  
6 -// Copyright © 2016年 阮思平. All rights reserved. 5 +// Created by 张旭 on 2017/3/17.
  6 +// Copyright © 2017年 张旭. All rights reserved.
7 // 7 //
8 8
9 #import <UIKit/UIKit.h> 9 #import <UIKit/UIKit.h>
LiveVideoCloud/LiveVideoCloud/Classes/Sections/InteractionSections/Gift/Present/PresentView.m
@@ -2,8 +2,8 @@ @@ -2,8 +2,8 @@
2 // PresentView.m 2 // PresentView.m
3 // PresentDemo 3 // PresentDemo
4 // 4 //
5 -// Created by 阮思平 on 16/10/2.  
6 -// Copyright © 2016年 阮思平. All rights reserved. 5 +// Created by 张旭 on 2017/3/17.
  6 +// Copyright © 2017年 张旭. All rights reserved.
7 // 7 //
8 8
9 #import "PresentView.h" 9 #import "PresentView.h"
@@ -17,7 +17,7 @@ @@ -17,7 +17,7 @@
17 */ 17 */
18 @property (strong, nonatomic) NSMutableArray *dataCaches; 18 @property (strong, nonatomic) NSMutableArray *dataCaches;
19 /** 19 /**
20 - * 不带连动画的消息缓存数组 20 + * 不带连动画的消息缓存数组
21 */ 21 */
22 @property (strong, nonatomic)NSMutableArray *nonshakeDataCaches; 22 @property (strong, nonatomic)NSMutableArray *nonshakeDataCaches;
23 /** 23 /**
LiveVideoCloud/LiveVideoCloud/Classes/Sections/InteractionSections/Gift/Present/PresentViewCell.h
@@ -2,8 +2,8 @@ @@ -2,8 +2,8 @@
2 // PresentViewCell.h 2 // PresentViewCell.h
3 // PresentDemo 3 // PresentDemo
4 // 4 //
5 -// Created by 阮思平 on 16/10/2.  
6 -// Copyright © 2016年 阮思平. All rights reserved. 5 +// Created by 张旭 on 2017/3/17.
  6 +// Copyright © 2017年 张旭. All rights reserved.
7 // 7 //
8 8
9 #import <UIKit/UIKit.h> 9 #import <UIKit/UIKit.h>
LiveVideoCloud/LiveVideoCloud/Classes/Sections/InteractionSections/Gift/Present/PresentViewCell.m
@@ -2,8 +2,8 @@ @@ -2,8 +2,8 @@
2 // PresentViewCell.m 2 // PresentViewCell.m
3 // PresentDemo 3 // PresentDemo
4 // 4 //
5 -// Created by 阮思平 on 16/10/2.  
6 -// Copyright © 2016年 阮思平. All rights reserved. 5 +// Created by 张旭 on 2017/3/17.
  6 +// Copyright © 2017年 张旭. All rights reserved.
7 // 7 //
8 8
9 #import "PresentViewCell.h" 9 #import "PresentViewCell.h"
LiveVideoCloud/LiveVideoCloud/Classes/Sections/InteractionSections/LiveBaseView.m
@@ -56,6 +56,7 @@ typedef NS_ENUM(NSInteger, PopType) {//弹窗类型 @@ -56,6 +56,7 @@ typedef NS_ENUM(NSInteger, PopType) {//弹窗类型
56 case BtnClickTypeChat: 56 case BtnClickTypeChat:
57 { 57 {
58 self.popType = PopTypeChat; 58 self.popType = PopTypeChat;
  59 +
59 } 60 }
60 break; 61 break;
61 case BtnClickTypePriChat: 62 case BtnClickTypePriChat:
@@ -67,11 +68,16 @@ typedef NS_ENUM(NSInteger, PopType) {//弹窗类型 @@ -67,11 +68,16 @@ typedef NS_ENUM(NSInteger, PopType) {//弹窗类型
67 { 68 {
68 self.popType = PopTypeGift; 69 self.popType = PopTypeGift;
69 70
70 - GiftListView *giftListView = [[GiftListView alloc] initWithFrame:CGRectMake(0, SCREEN_HEIGHT - 230, SCREEN_WIDTH, 230) liveBaseView:self];  
71 - giftListView.backgroundColor = [UIColor lightGrayColor]; 71 + GiftListView *giftListView = [[GiftListView alloc] initWithFrame:CGRectMake(0, SCREEN_HEIGHT - 250, SCREEN_WIDTH, 250) liveBaseView:self];
72 [self addSubview:giftListView]; 72 [self addSubview:giftListView];
73 self.giftPopView = giftListView; 73 self.giftPopView = giftListView;
74 - 74 +
  75 + UIImageView *giftBg = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, giftListView.width, giftListView.height)];
  76 + giftBg.image = [UIImage imageNamed:@"背景400x300"];
  77 + giftBg.centerX = giftListView.width * 0.5;
  78 + giftBg.centerY = giftListView.height * 0.5;
  79 + giftBg.alpha = 0.4;
  80 + [giftListView addSubview:giftBg];
75 } 81 }
76 break; 82 break;
77 default: 83 default:
LiveVideoCloud/LiveVideoCloud/animation.xcassets/Interaction/Gift/Contents.json 0 → 100644
  1 +{
  2 + "info" : {
  3 + "version" : 1,
  4 + "author" : "xcode"
  5 + }
  6 +}
0 \ No newline at end of file 7 \ No newline at end of file
LiveVideoCloud/LiveVideoCloud/animation.xcassets/Interaction/Gift/beer.imageset/Contents.json 0 → 100644
  1 +{
  2 + "images" : [
  3 + {
  4 + "idiom" : "universal",
  5 + "filename" : "beer.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 \ No newline at end of file 22 \ No newline at end of file
LiveVideoCloud/LiveVideoCloud/animation.xcassets/Interaction/Gift/beer.imageset/beer.png 0 → 100644

5.11 KB

LiveVideoCloud/LiveVideoCloud/animation.xcassets/Interaction/Gift/chicken.imageset/Contents.json 0 → 100644
  1 +{
  2 + "images" : [
  3 + {
  4 + "idiom" : "universal",
  5 + "filename" : "chicken.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 \ No newline at end of file 22 \ No newline at end of file
LiveVideoCloud/LiveVideoCloud/animation.xcassets/Interaction/Gift/chicken.imageset/chicken.png 0 → 100644

4.37 KB

LiveVideoCloud/LiveVideoCloud/animation.xcassets/Interaction/Gift/continuous.imageset/Contents.json 0 → 100644
  1 +{
  2 + "images" : [
  3 + {
  4 + "idiom" : "universal",
  5 + "filename" : "continuous.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 \ No newline at end of file 22 \ No newline at end of file
LiveVideoCloud/LiveVideoCloud/animation.xcassets/Interaction/Gift/continuous.imageset/continuous.png 0 → 100644

1.94 KB

LiveVideoCloud/LiveVideoCloud/animation.xcassets/Interaction/Gift/cucumber.imageset/Contents.json 0 → 100644
  1 +{
  2 + "images" : [
  3 + {
  4 + "idiom" : "universal",
  5 + "filename" : "cucumber.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 \ No newline at end of file 22 \ No newline at end of file
LiveVideoCloud/LiveVideoCloud/animation.xcassets/Interaction/Gift/cucumber.imageset/cucumber.png 0 → 100644

7.15 KB

LiveVideoCloud/LiveVideoCloud/animation.xcassets/Interaction/Gift/diamond.imageset/Contents.json 0 → 100644
  1 +{
  2 + "images" : [
  3 + {
  4 + "idiom" : "universal",
  5 + "filename" : "diamond.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 \ No newline at end of file 22 \ No newline at end of file
LiveVideoCloud/LiveVideoCloud/animation.xcassets/Interaction/Gift/diamond.imageset/diamond.png 0 → 100644

1.01 KB

LiveVideoCloud/LiveVideoCloud/animation.xcassets/Interaction/Gift/fighter_small80.imageset/Contents.json 0 → 100644
  1 +{
  2 + "images" : [
  3 + {
  4 + "idiom" : "universal",
  5 + "filename" : "fighter_small80.png",
  6 + "scale" : "1x"
  7 + }
  8 + ],
  9 + "info" : {
  10 + "version" : 1,
  11 + "author" : "xcode"
  12 + }
  13 +}
0 \ No newline at end of file 14 \ No newline at end of file
LiveVideoCloud/LiveVideoCloud/animation.xcassets/Interaction/Gift/fighter_small80.imageset/fighter_small80.png 0 → 100644

7.91 KB

LiveVideoCloud/LiveVideoCloud/animation.xcassets/Interaction/Gift/flower.imageset/Contents.json 0 → 100644
  1 +{
  2 + "images" : [
  3 + {
  4 + "idiom" : "universal",
  5 + "filename" : "flower.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 \ No newline at end of file 22 \ No newline at end of file
LiveVideoCloud/LiveVideoCloud/animation.xcassets/Interaction/Gift/flower.imageset/flower.png 0 → 100644

4.82 KB

LiveVideoCloud/LiveVideoCloud/animation.xcassets/Interaction/Gift/hug.imageset/Contents.json 0 → 100644
  1 +{
  2 + "images" : [
  3 + {
  4 + "idiom" : "universal",
  5 + "filename" : "hug.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 \ No newline at end of file 22 \ No newline at end of file
LiveVideoCloud/LiveVideoCloud/animation.xcassets/Interaction/Gift/hug.imageset/hug.png 0 → 100644

4.34 KB

LiveVideoCloud/LiveVideoCloud/animation.xcassets/Interaction/Gift/love_gift.imageset/Contents.json 0 → 100644
  1 +{
  2 + "images" : [
  3 + {
  4 + "idiom" : "universal",
  5 + "filename" : "love_gift.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 \ No newline at end of file 22 \ No newline at end of file
LiveVideoCloud/LiveVideoCloud/animation.xcassets/Interaction/Gift/love_gift.imageset/love_gift.png 0 → 100644

2.14 KB

LiveVideoCloud/LiveVideoCloud/animation.xcassets/Interaction/Gift/mouth.imageset/Contents.json 0 → 100644
  1 +{
  2 + "images" : [
  3 + {
  4 + "idiom" : "universal",
  5 + "filename" : "mouth.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 \ No newline at end of file 22 \ No newline at end of file
LiveVideoCloud/LiveVideoCloud/animation.xcassets/Interaction/Gift/mouth.imageset/mouth.png 0 → 100644

5.06 KB

LiveVideoCloud/LiveVideoCloud/animation.xcassets/Interaction/Gift/plane_small80.imageset/Contents.json 0 → 100644
  1 +{
  2 + "images" : [
  3 + {
  4 + "idiom" : "universal",
  5 + "filename" : "plane_small80.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 \ No newline at end of file 22 \ No newline at end of file
LiveVideoCloud/LiveVideoCloud/animation.xcassets/Interaction/Gift/plane_small80.imageset/plane_small80.png 0 → 100644

6.96 KB

LiveVideoCloud/LiveVideoCloud/animation.xcassets/Interaction/Gift/porsch_small80.imageset/Contents.json 0 → 100644
  1 +{
  2 + "images" : [
  3 + {
  4 + "idiom" : "universal",
  5 + "filename" : "porsch_small80.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 \ No newline at end of file 22 \ No newline at end of file
LiveVideoCloud/LiveVideoCloud/animation.xcassets/Interaction/Gift/porsch_small80.imageset/porsch_small80.png 0 → 100644

8.48 KB

LiveVideoCloud/LiveVideoCloud/animation.xcassets/Interaction/Gift/ring.imageset/Contents.json 0 → 100644
  1 +{
  2 + "images" : [
  3 + {
  4 + "idiom" : "universal",
  5 + "filename" : "ring.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 \ No newline at end of file 22 \ No newline at end of file
LiveVideoCloud/LiveVideoCloud/animation.xcassets/Interaction/Gift/ring.imageset/ring.png 0 → 100644

6.54 KB

LiveVideoCloud/LiveVideoCloud/animation.xcassets/Interaction/Gift/rose.imageset/Contents.json 0 → 100644
  1 +{
  2 + "images" : [
  3 + {
  4 + "idiom" : "universal",
  5 + "filename" : "rose.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 \ No newline at end of file 22 \ No newline at end of file
LiveVideoCloud/LiveVideoCloud/animation.xcassets/Interaction/Gift/rose.imageset/rose.png 0 → 100644

5.39 KB

LiveVideoCloud/LiveVideoCloud/animation.xcassets/Interaction/Gift/sticks.imageset/Contents.json 0 → 100644
  1 +{
  2 + "images" : [
  3 + {
  4 + "idiom" : "universal",
  5 + "filename" : "sticks.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 \ No newline at end of file 22 \ No newline at end of file
LiveVideoCloud/LiveVideoCloud/animation.xcassets/Interaction/Gift/sticks.imageset/sticks.png 0 → 100644

4.44 KB

LiveVideoCloud/LiveVideoCloud/animation.xcassets/Interaction/Gift/背景100x100.imageset/Contents.json 0 → 100644
  1 +{
  2 + "images" : [
  3 + {
  4 + "idiom" : "universal",
  5 + "filename" : "背景100x100.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 \ No newline at end of file 22 \ No newline at end of file
LiveVideoCloud/LiveVideoCloud/animation.xcassets/Interaction/Gift/背景100x100.imageset/背景100x100.png 0 → 100644

1.46 KB

LiveVideoCloud/LiveVideoCloud/animation.xcassets/Interaction/Gift/背景150x100.imageset/Contents.json 0 → 100644
  1 +{
  2 + "images" : [
  3 + {
  4 + "idiom" : "universal",
  5 + "filename" : "背景150x100.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 \ No newline at end of file 22 \ No newline at end of file
LiveVideoCloud/LiveVideoCloud/animation.xcassets/Interaction/Gift/背景150x100.imageset/背景150x100.png 0 → 100644

1.56 KB

LiveVideoCloud/LiveVideoCloud/animation.xcassets/Interaction/Gift/背景200x50.imageset/Contents.json 0 → 100644
  1 +{
  2 + "images" : [
  3 + {
  4 + "idiom" : "universal",
  5 + "filename" : "背景200x50.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 \ No newline at end of file 22 \ No newline at end of file
LiveVideoCloud/LiveVideoCloud/animation.xcassets/Interaction/Gift/背景200x50.imageset/背景200x50.png 0 → 100644

1.4 KB

LiveVideoCloud/LiveVideoCloud/animation.xcassets/Interaction/Gift/背景400x30.imageset/Contents.json 0 → 100644
  1 +{
  2 + "images" : [
  3 + {
  4 + "idiom" : "universal",
  5 + "filename" : "背景400x30.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 \ No newline at end of file 22 \ No newline at end of file
LiveVideoCloud/LiveVideoCloud/animation.xcassets/Interaction/Gift/背景400x30.imageset/背景400x30.png 0 → 100644

1.45 KB

LiveVideoCloud/LiveVideoCloud/animation.xcassets/Interaction/Gift/背景400x300.imageset/Contents.json 0 → 100644
  1 +{
  2 + "images" : [
  3 + {
  4 + "idiom" : "universal",
  5 + "filename" : "背景400x300.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 \ No newline at end of file 22 \ No newline at end of file
LiveVideoCloud/LiveVideoCloud/animation.xcassets/Interaction/Gift/背景400x300.imageset/背景400x300.png 0 → 100644

3.76 KB