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 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
... ... @@ -11,7 +11,7 @@
11 11 typedef NS_ENUM(NSInteger, GiftStyle) {//礼物类型
12 12 GiftStyleCombo = 1,//普通可连击礼物
13 13 GiftStylePorsch ,//豪华跑车礼物
14   -// GiftStyleFighter ,//豪华歼灭机礼物
  14 + GiftStyleFighter ,//豪华歼灭机礼物
15 15 GiftStylePlane ,//豪华客机礼物
16 16 };
17 17  
... ...
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
... ... @@ -7,9 +7,8 @@
7 7 //
8 8  
9 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 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
  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 2 // PresentModelAble.h
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 <Foundation/Foundation.h>
... ...
LiveVideoCloud/LiveVideoCloud/Classes/Sections/InteractionSections/Gift/Present/PresentView.h
... ... @@ -2,8 +2,8 @@
2 2 // PresentView.h
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 <UIKit/UIKit.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
... ... @@ -2,8 +2,8 @@
2 2 // PresentViewCell.h
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 <UIKit/UIKit.h>
... ...
LiveVideoCloud/LiveVideoCloud/Classes/Sections/InteractionSections/Gift/Present/PresentViewCell.m
... ... @@ -2,8 +2,8 @@
2 2 // PresentViewCell.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 "PresentViewCell.h"
... ...
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
  1 +{
  2 + "info" : {
  3 + "version" : 1,
  4 + "author" : "xcode"
  5 + }
  6 +}
0 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 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
  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 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 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