Commit 24a0a2ac7c6ad0937a01d4f525056277f5d1cb61
1 parent
cf9d0686
完善礼物UI,添加歼灭机
Showing
58 changed files
with
621 additions
and
138 deletions
LiveVideoCloud/LiveVideoCloud.xcodeproj/project.pbxproj
| ... | ... | @@ -131,6 +131,7 @@ |
| 131 | 131 | D22830FC1E77C2D900627701 /* BottomToolView.m in Sources */ = {isa = PBXBuildFile; fileRef = D22830FB1E77C2D900627701 /* BottomToolView.m */; }; |
| 132 | 132 | D22830FF1E77C69E00627701 /* GiftListView.m in Sources */ = {isa = PBXBuildFile; fileRef = D22830FE1E77C69E00627701 /* GiftListView.m */; }; |
| 133 | 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 | 135 | D25530001E7909AC00DF38A5 /* GiftAnimOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = D2552FFF1E7909AC00DF38A5 /* GiftAnimOperation.m */; }; |
| 135 | 136 | D25530031E79115100DF38A5 /* AnimQueueManager.m in Sources */ = {isa = PBXBuildFile; fileRef = D25530021E79115100DF38A5 /* AnimQueueManager.m */; }; |
| 136 | 137 | D25530061E7911A800DF38A5 /* GiftAnimationAction.m in Sources */ = {isa = PBXBuildFile; fileRef = D25530051E7911A800DF38A5 /* GiftAnimationAction.m */; }; |
| ... | ... | @@ -223,7 +224,6 @@ |
| 223 | 224 | 8112D4301E7927A5002E00F6 /* LVCPlayerLoadingView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LVCPlayerLoadingView.m; sourceTree = "<group>"; }; |
| 224 | 225 | 812E504F1E7699DC004F5FCD /* CNLiveMsgTools.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = CNLiveMsgTools.framework; sourceTree = "<group>"; }; |
| 225 | 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 | 227 | 81FB5B3A1E7A6FFC00F98E1D /* SevenSwitch.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SevenSwitch.h; sourceTree = "<group>"; }; |
| 228 | 228 | 81FB5B3B1E7A6FFC00F98E1D /* SevenSwitch.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SevenSwitch.m; sourceTree = "<group>"; }; |
| 229 | 229 | D2029B811E6EAAA50027CD92 /* LiveVideoCloud.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = LiveVideoCloud.app; sourceTree = BUILT_PRODUCTS_DIR; }; |
| ... | ... | @@ -442,8 +442,8 @@ |
| 442 | 442 | D217A2471E7B76C7003B44CB /* PresentView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PresentView.m; sourceTree = "<group>"; }; |
| 443 | 443 | D217A2481E7B76C7003B44CB /* PresentViewCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PresentViewCell.h; sourceTree = "<group>"; }; |
| 444 | 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 | 447 | D22830EF1E778C0F00627701 /* LiveBaseView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LiveBaseView.h; sourceTree = "<group>"; }; |
| 448 | 448 | D22830F01E778C0F00627701 /* LiveBaseView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LiveBaseView.m; sourceTree = "<group>"; }; |
| 449 | 449 | D22830FA1E77C2D900627701 /* BottomToolView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BottomToolView.h; sourceTree = "<group>"; }; |
| ... | ... | @@ -452,6 +452,8 @@ |
| 452 | 452 | D22830FE1E77C69E00627701 /* GiftListView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GiftListView.m; sourceTree = "<group>"; }; |
| 453 | 453 | D22831071E77D8D500627701 /* GiftModel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GiftModel.h; sourceTree = "<group>"; }; |
| 454 | 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 | 457 | D2552FFE1E7909AC00DF38A5 /* GiftAnimOperation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GiftAnimOperation.h; sourceTree = "<group>"; }; |
| 456 | 458 | D2552FFF1E7909AC00DF38A5 /* GiftAnimOperation.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GiftAnimOperation.m; sourceTree = "<group>"; }; |
| 457 | 459 | D25530011E79115100DF38A5 /* AnimQueueManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AnimQueueManager.h; sourceTree = "<group>"; }; |
| ... | ... | @@ -1205,8 +1207,6 @@ |
| 1205 | 1207 | D217A2471E7B76C7003B44CB /* PresentView.m */, |
| 1206 | 1208 | D217A2481E7B76C7003B44CB /* PresentViewCell.h */, |
| 1207 | 1209 | D217A2491E7B76C7003B44CB /* PresentViewCell.m */, |
| 1208 | - D217A24C1E7B77C7003B44CB /* ComboCell.h */, | |
| 1209 | - D217A24D1E7B77C7003B44CB /* ComboCell.m */, | |
| 1210 | 1210 | ); |
| 1211 | 1211 | path = Present; |
| 1212 | 1212 | sourceTree = "<group>"; |
| ... | ... | @@ -1216,6 +1216,8 @@ |
| 1216 | 1216 | children = ( |
| 1217 | 1217 | D22830FD1E77C69E00627701 /* GiftListView.h */, |
| 1218 | 1218 | D22830FE1E77C69E00627701 /* GiftListView.m */, |
| 1219 | + D236967C1E7F9E4100E4BF71 /* GiftPayButton.h */, | |
| 1220 | + D236967D1E7F9E4100E4BF71 /* GiftPayButton.m */, | |
| 1219 | 1221 | ); |
| 1220 | 1222 | path = GiftViews; |
| 1221 | 1223 | sourceTree = "<group>"; |
| ... | ... | @@ -1291,6 +1293,8 @@ |
| 1291 | 1293 | isa = PBXGroup; |
| 1292 | 1294 | children = ( |
| 1293 | 1295 | D217A2441E7B76C7003B44CB /* Present */, |
| 1296 | + D217A24C1E7B77C7003B44CB /* ComboCell.h */, | |
| 1297 | + D217A24D1E7B77C7003B44CB /* ComboCell.m */, | |
| 1294 | 1298 | D25530041E7911A800DF38A5 /* GiftAnimationAction.h */, |
| 1295 | 1299 | D25530051E7911A800DF38A5 /* GiftAnimationAction.m */, |
| 1296 | 1300 | D25530011E79115100DF38A5 /* AnimQueueManager.h */, |
| ... | ... | @@ -1565,8 +1569,6 @@ |
| 1565 | 1569 | D2029CB01E6EADE10027CD92 /* MJRefresh.bundle in Resources */, |
| 1566 | 1570 | D2575C7C1E76A4F300E3A8FC /* NHFighterView.nib in Resources */, |
| 1567 | 1571 | D25BF87D1E7B8C78007FB138 /* KSYGPUResource.bundle in Resources */, |
| 1568 | - D2029B8F1E6EAAA50027CD92 /* Main.storyboard in Resources */, | |
| 1569 | - 812E50541E7699DC004F5FCD /* KSYGPUResource.bundle in Resources */, | |
| 1570 | 1572 | ); |
| 1571 | 1573 | runOnlyForDeploymentPostprocessing = 0; |
| 1572 | 1574 | }; |
| ... | ... | @@ -1647,6 +1649,7 @@ |
| 1647 | 1649 | D2575C4A1E7685DE00E3A8FC /* UIView+Bubbling.m in Sources */, |
| 1648 | 1650 | D2029CA61E6EADE10027CD92 /* MJRefreshHeader.m in Sources */, |
| 1649 | 1651 | D2029CC41E6EADE10027CD92 /* UIImageView+WebCache.m in Sources */, |
| 1652 | + D236967E1E7F9E4100E4BF71 /* GiftPayButton.m in Sources */, | |
| 1650 | 1653 | D2029CC81E6EADE10027CD92 /* SVProgressAnimatedView.m in Sources */, |
| 1651 | 1654 | D2029C961E6EADE10027CD92 /* MBProgressHUD.m in Sources */, |
| 1652 | 1655 | 810B65071E779B1F00133E15 /* ViewController+MASAdditions.m in Sources */, | ... | ... |
LiveVideoCloud/LiveVideoCloud/Classes/Sections/InteractionSections/Gift/AnimQueueManager.m
| ... | ... | @@ -57,20 +57,21 @@ |
| 57 | 57 | @param model modelobj |
| 58 | 58 | */ |
| 59 | 59 | - (void)addAnimationWithModel:(GiftModel *)model animContentView:(UIView *)animContentView{ |
| 60 | - | |
| 60 | + | |
| 61 | + GiftAnimOperation *op = [GiftAnimOperation addGiftAnimOperationWithGiftModel:model animContentView:animContentView]; | |
| 61 | 62 | switch (model.giftStyle) { |
| 62 | 63 | case GiftStylePorsch: |
| 63 | 64 | { |
| 64 | - GiftAnimOperation *op = [GiftAnimOperation addGiftAnimOperationWithGiftModel:model animContentView:animContentView]; | |
| 65 | 65 | [self.expenAnimationQueue addOperation:op]; |
| 66 | 66 | } |
| 67 | 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 | 73 | case GiftStylePlane: |
| 72 | 74 | { |
| 73 | - GiftAnimOperation *op = [GiftAnimOperation addGiftAnimOperationWithGiftModel:model animContentView:animContentView]; | |
| 74 | 75 | [self.expenAnimationQueue addOperation:op]; |
| 75 | 76 | } |
| 76 | 77 | break; | ... | ... |
LiveVideoCloud/LiveVideoCloud/Classes/Sections/InteractionSections/Gift/GiftAnimOperation.m
| ... | ... | @@ -11,8 +11,8 @@ |
| 11 | 11 | #import "NHCarViews.h" |
| 12 | 12 | #import "NHPlaneViews.h" |
| 13 | 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 | 17 | @interface GiftAnimOperation () |
| 18 | 18 | { |
| ... | ... | @@ -21,7 +21,7 @@ |
| 21 | 21 | } |
| 22 | 22 | |
| 23 | 23 | @property (nonatomic, strong)NHCarViews *giftCarView; //跑车动画 |
| 24 | -//@property (nonatomic, strong)NHFighterView *giftFighterView; //歼灭机动画 | |
| 24 | +@property (nonatomic, strong)NHFighterView *giftFighterView; //歼灭机动画 | |
| 25 | 25 | @property (nonatomic, strong)NHPlaneViews *giftPlaneView; //客机动画 |
| 26 | 26 | @property (nonatomic, strong)GiftModel *model; //model |
| 27 | 27 | @property (nonatomic,strong) UIView *animContentView; //需要显示动画的view |
| ... | ... | @@ -72,9 +72,9 @@ |
| 72 | 72 | case GiftStylePorsch: |
| 73 | 73 | [self porschAnimation]; |
| 74 | 74 | break; |
| 75 | -// case GiftStyleFighter: | |
| 76 | -// [self fighterAnimation]; | |
| 77 | -// break; | |
| 75 | + case GiftStyleFighter: | |
| 76 | + [self fighterAnimation]; | |
| 77 | + break; | |
| 78 | 78 | case GiftStylePlane: |
| 79 | 79 | [self planeAnimation]; |
| 80 | 80 | break; |
| ... | ... | @@ -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 | 128 | - (void)planeAnimation |
| 128 | 129 | { |
| ... | ... | @@ -169,12 +170,12 @@ |
| 169 | 170 | |
| 170 | 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 | 23 | - (void)startPorschAnimationWithCompletion:(giftAnimationCompletion)Completion; |
| 24 | 24 | |
| 25 | 25 | /** |
| 26 | - 歼灭机动画 | |
| 27 | - */ | |
| 28 | -//- (void)startFighterAnimationWithCompletion:(giftAnimationCompletion)Completion; | |
| 29 | - | |
| 30 | -/** | |
| 31 | 26 | 客机动画 |
| 32 | 27 | */ |
| 33 | 28 | - (void)startPlaneAnimationWithCompletion:(giftAnimationCompletion)Completion; | ... | ... |
LiveVideoCloud/LiveVideoCloud/Classes/Sections/InteractionSections/Gift/GiftAnimationAction.m
| ... | ... | @@ -11,45 +11,6 @@ |
| 11 | 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 | 16 | - (void)startPorschAnimationWithCompletion:(giftAnimationCompletion)Completion |
| ... | ... | @@ -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 | 24 | - (void)startPlaneAnimationWithCompletion:(giftAnimationCompletion)Completion | ... | ... |
LiveVideoCloud/LiveVideoCloud/Classes/Sections/InteractionSections/Gift/GiftModel/GiftModel.h
LiveVideoCloud/LiveVideoCloud/Classes/Sections/InteractionSections/Gift/GiftResource/NHFighterView+animDelegagte.m
| ... | ... | @@ -7,6 +7,7 @@ |
| 7 | 7 | // |
| 8 | 8 | |
| 9 | 9 | #import "NHFighterView+animDelegagte.h" |
| 10 | +#import "GiftAnimationAction.h" | |
| 10 | 11 | |
| 11 | 12 | @implementation NHFighterView (animDelegagte) |
| 12 | 13 | |
| ... | ... | @@ -17,7 +18,8 @@ |
| 17 | 18 | |
| 18 | 19 | - (void)animationDidStop:(CAAnimation *)anim finished:(BOOL)flag |
| 19 | 20 | { |
| 20 | - _giftAnimationCompletion(-1); | |
| 21 | +// _giftAnimationCompletion(); | |
| 22 | + | |
| 21 | 23 | NSLog(@"did stop"); |
| 22 | 24 | } |
| 23 | 25 | ... | ... |
LiveVideoCloud/LiveVideoCloud/Classes/Sections/InteractionSections/Gift/GiftResource/NHFighterView.h
LiveVideoCloud/LiveVideoCloud/Classes/Sections/InteractionSections/Gift/GiftViews/GiftListView.m
| ... | ... | @@ -10,13 +10,20 @@ |
| 10 | 10 | #import "GiftModel.h" |
| 11 | 11 | #import "LiveBaseView.h" |
| 12 | 12 | #import "AnimQueueManager.h" |
| 13 | +#import "GiftPayButton.h" | |
| 13 | 14 | |
| 14 | 15 | #define MAX_LINE_COUNT 4 |
| 15 | 16 | #define MAX_ROW_COUNT 2 |
| 16 | 17 | |
| 18 | +#define GiftPayViewHeight 50 | |
| 19 | + | |
| 17 | 20 | @interface GiftListView () |
| 18 | 21 | |
| 19 | 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 | 27 | @property (nonatomic ,weak ) LiveBaseView * _Nullable liveBaseView; |
| 21 | 28 | @property (nonatomic, strong) AnimQueueManager * animQueueManager; |
| 22 | 29 | @property (nonatomic ,strong) GiftModel * _Nullable model; |
| ... | ... | @@ -28,17 +35,22 @@ |
| 28 | 35 | - (instancetype)initWithFrame:(CGRect)frame liveBaseView:(LiveBaseView *_Nullable)liveBaseView |
| 29 | 36 | { |
| 30 | 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 | 44 | self.liveBaseView = liveBaseView; |
| 32 | 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 | 49 | scrollView.pagingEnabled = YES; |
| 37 | 50 | scrollView.bounces = NO; |
| 38 | 51 | scrollView.showsVerticalScrollIndicator = NO; |
| 39 | 52 | scrollView.showsHorizontalScrollIndicator = NO; |
| 40 | 53 | [self addSubview:scrollView]; |
| 41 | - scrollView.backgroundColor = ZXRandomColor; | |
| 42 | 54 | |
| 43 | 55 | int line = 0; |
| 44 | 56 | int row = 0; |
| ... | ... | @@ -56,40 +68,65 @@ |
| 56 | 68 | } |
| 57 | 69 | row = i % MAX_LINE_COUNT; |
| 58 | 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 | 72 | giftX = row * giftWidth + page * scrollView.width; |
| 61 | 73 | giftY = line * giftHeight; |
| 62 | 74 | |
| 63 | 75 | UIView *giftView = [self giftViewWithFrame:CGRectMake(giftX, giftY, giftWidth, giftHeight) model:self.giftArray[i]]; |
| 76 | + giftView.backgroundColor = [UIColor clearColor]; | |
| 64 | 77 | |
| 65 | 78 | //礼物图片 |
| 66 | 79 | UIImageView *picImg = [[UIImageView alloc] initWithImage:[UIImage imageNamed:self.giftArray[i].giftImageName]]; |
| 67 | 80 | picImg.centerX = giftView.width * 0.5; |
| 68 | 81 | picImg.centerY = giftView.height * 0.5; |
| 69 | 82 | [giftView addSubview:picImg]; |
| 70 | - | |
| 71 | 83 | [scrollView addSubview:giftView]; |
| 72 | 84 | |
| 73 | 85 | UITapGestureRecognizer *gesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(gestureClick:)]; |
| 74 | 86 | giftView.tag = i + 10; |
| 75 | 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 | 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 | 121 | - (UIView *)giftViewWithFrame:(CGRect)frame model:(GiftModel *)model |
| 82 | 122 | { |
| 83 | 123 | _model = model; |
| 84 | 124 | UIView *giftView = [[UIView alloc] initWithFrame:frame]; |
| 85 | 125 | if (model.giftStyle == GiftStyleCombo) |
| 86 | - { | |
| 126 | + {//右上角连击标识 | |
| 87 | 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 | 131 | //礼物价格lbl |
| 95 | 132 | UILabel *priceLbl = [[UILabel alloc] initWithFrame:CGRectMake(0, giftView.height - 15, 40, 14)]; |
| ... | ... | @@ -101,7 +138,7 @@ |
| 101 | 138 | priceLbl.centerX = giftView.width * 0.5 - 4; |
| 102 | 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 | 142 | image.left = priceLbl.right + 3; |
| 106 | 143 | image.centerY = priceLbl.centerY; |
| 107 | 144 | [giftView addSubview:image]; |
| ... | ... | @@ -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 | 177 | #pragma mark - getter |
| 129 | 178 | |
| 130 | 179 | - (NSArray *)giftArray |
| 131 | 180 | { |
| 132 | 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 | 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 | 188 | if (type == 1) { |
| 144 | 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 | 191 | model1.giftStyle = GiftStyleCombo; |
| 147 | - model1.price = prices[i]; | |
| 192 | + model1.price = _prices[i]; | |
| 148 | 193 | [tempArr addObject:model1]; |
| 149 | 194 | |
| 150 | 195 | }else |
| 151 | 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 | 199 | if (type == 2) { |
| 155 | 200 | model.giftStyle = GiftStylePorsch; |
| 156 | - model.giftName = @"跑车"; | |
| 201 | + model.giftImageName = @"porsch_small80"; | |
| 157 | 202 | } |
| 158 | 203 | if (type == 3) { |
| 204 | + model.giftStyle = GiftStyleFighter; | |
| 205 | + model.giftImageName = @"fighter_small80"; | |
| 206 | + } | |
| 207 | + if (type == 4) { | |
| 159 | 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 | 212 | [tempArr addObject:model]; |
| 164 | 213 | } |
| 165 | 214 | } | ... | ... |
LiveVideoCloud/LiveVideoCloud/Classes/Sections/InteractionSections/Gift/GiftViews/GiftPayButton.h
0 → 100644
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
LiveVideoCloud/LiveVideoCloud/Classes/Sections/InteractionSections/Gift/Present/PresentView.h
LiveVideoCloud/LiveVideoCloud/Classes/Sections/InteractionSections/Gift/Present/PresentView.m
| ... | ... | @@ -2,8 +2,8 @@ |
| 2 | 2 | // PresentView.m |
| 3 | 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 | 9 | #import "PresentView.h" |
| ... | ... | @@ -17,7 +17,7 @@ |
| 17 | 17 | */ |
| 18 | 18 | @property (strong, nonatomic) NSMutableArray *dataCaches; |
| 19 | 19 | /** |
| 20 | - * 不带连城动画的消息缓存数组 | |
| 20 | + * 不带连乘动画的消息缓存数组 | |
| 21 | 21 | */ |
| 22 | 22 | @property (strong, nonatomic)NSMutableArray *nonshakeDataCaches; |
| 23 | 23 | /** | ... | ... |
LiveVideoCloud/LiveVideoCloud/Classes/Sections/InteractionSections/Gift/Present/PresentViewCell.h
LiveVideoCloud/LiveVideoCloud/Classes/Sections/InteractionSections/Gift/Present/PresentViewCell.m
LiveVideoCloud/LiveVideoCloud/Classes/Sections/InteractionSections/LiveBaseView.m
| ... | ... | @@ -56,6 +56,7 @@ typedef NS_ENUM(NSInteger, PopType) {//弹窗类型 |
| 56 | 56 | case BtnClickTypeChat: |
| 57 | 57 | { |
| 58 | 58 | self.popType = PopTypeChat; |
| 59 | + | |
| 59 | 60 | } |
| 60 | 61 | break; |
| 61 | 62 | case BtnClickTypePriChat: |
| ... | ... | @@ -67,11 +68,16 @@ typedef NS_ENUM(NSInteger, PopType) {//弹窗类型 |
| 67 | 68 | { |
| 68 | 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 | 72 | [self addSubview:giftListView]; |
| 73 | 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 | 82 | break; |
| 77 | 83 | default: | ... | ... |
LiveVideoCloud/LiveVideoCloud/animation.xcassets/Interaction/Gift/Contents.json
0 → 100644
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 | 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 | 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 | 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 | 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 | 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
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 | 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 | 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 | 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 | 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 | 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 | 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 | 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 | 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 | 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 | 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 | 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 | 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 | 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 | 22 | \ No newline at end of file | ... | ... |
LiveVideoCloud/LiveVideoCloud/animation.xcassets/Interaction/Gift/背景400x300.imageset/背景400x300.png
0 → 100644
3.76 KB