Commit 4ea0a67d89b3be817af76d4a88f212f00dcbec08

Authored by 张旭
1 parent f50904d8

礼物列表逻辑展示,底部工具条

Showing 91 changed files with 985 additions and 10 deletions
LiveVideoCloud/LiveVideoCloud.xcodeproj/project.pbxproj
@@ -16,7 +16,7 @@ @@ -16,7 +16,7 @@
16 812E50581E7699E9004F5FCD /* CNLivePlayerSDK.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 812E50501E7699DC004F5FCD /* CNLivePlayerSDK.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; 16 812E50581E7699E9004F5FCD /* CNLivePlayerSDK.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 812E50501E7699DC004F5FCD /* CNLivePlayerSDK.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
17 D2029B861E6EAAA50027CD92 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = D2029B851E6EAAA50027CD92 /* main.m */; }; 17 D2029B861E6EAAA50027CD92 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = D2029B851E6EAAA50027CD92 /* main.m */; };
18 D2029B8F1E6EAAA50027CD92 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = D2029B8D1E6EAAA50027CD92 /* Main.storyboard */; }; 18 D2029B8F1E6EAAA50027CD92 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = D2029B8D1E6EAAA50027CD92 /* Main.storyboard */; };
19 - D2029B911E6EAAA50027CD92 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = D2029B901E6EAAA50027CD92 /* Assets.xcassets */; }; 19 + D2029B911E6EAAA50027CD92 /* animation.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = D2029B901E6EAAA50027CD92 /* animation.xcassets */; };
20 D2029B941E6EAAA50027CD92 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = D2029B921E6EAAA50027CD92 /* LaunchScreen.storyboard */; }; 20 D2029B941E6EAAA50027CD92 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = D2029B921E6EAAA50027CD92 /* LaunchScreen.storyboard */; };
21 D2029B9F1E6EAAA50027CD92 /* LiveVideoCloudTests.m in Sources */ = {isa = PBXBuildFile; fileRef = D2029B9E1E6EAAA50027CD92 /* LiveVideoCloudTests.m */; }; 21 D2029B9F1E6EAAA50027CD92 /* LiveVideoCloudTests.m in Sources */ = {isa = PBXBuildFile; fileRef = D2029B9E1E6EAAA50027CD92 /* LiveVideoCloudTests.m */; };
22 D2029BAA1E6EAAA50027CD92 /* LiveVideoCloudUITests.m in Sources */ = {isa = PBXBuildFile; fileRef = D2029BA91E6EAAA50027CD92 /* LiveVideoCloudUITests.m */; }; 22 D2029BAA1E6EAAA50027CD92 /* LiveVideoCloudUITests.m in Sources */ = {isa = PBXBuildFile; fileRef = D2029BA91E6EAAA50027CD92 /* LiveVideoCloudUITests.m */; };
@@ -113,6 +113,11 @@ @@ -113,6 +113,11 @@
113 D2029D091E6EAE2E0027CD92 /* Foundation+Log.m in Sources */ = {isa = PBXBuildFile; fileRef = D2029CF21E6EAE2E0027CD92 /* Foundation+Log.m */; }; 113 D2029D091E6EAE2E0027CD92 /* Foundation+Log.m in Sources */ = {isa = PBXBuildFile; fileRef = D2029CF21E6EAE2E0027CD92 /* Foundation+Log.m */; };
114 D2029D0A1E6EAE2E0027CD92 /* ZXServerUrl.m in Sources */ = {isa = PBXBuildFile; fileRef = D2029CFE1E6EAE2E0027CD92 /* ZXServerUrl.m */; }; 114 D2029D0A1E6EAE2E0027CD92 /* ZXServerUrl.m in Sources */ = {isa = PBXBuildFile; fileRef = D2029CFE1E6EAE2E0027CD92 /* ZXServerUrl.m */; };
115 D2029D161E6EB00D0027CD92 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = D2029D151E6EB00D0027CD92 /* AppDelegate.m */; }; 115 D2029D161E6EB00D0027CD92 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = D2029D151E6EB00D0027CD92 /* AppDelegate.m */; };
  116 + D22830F11E778C0F00627701 /* LiveBaseView.m in Sources */ = {isa = PBXBuildFile; fileRef = D22830F01E778C0F00627701 /* LiveBaseView.m */; };
  117 + D22830FC1E77C2D900627701 /* BottomToolView.m in Sources */ = {isa = PBXBuildFile; fileRef = D22830FB1E77C2D900627701 /* BottomToolView.m */; };
  118 + D22830FF1E77C69E00627701 /* GiftListView.m in Sources */ = {isa = PBXBuildFile; fileRef = D22830FE1E77C69E00627701 /* GiftListView.m */; };
  119 + D22831021E77D83C00627701 /* GiftModelView.m in Sources */ = {isa = PBXBuildFile; fileRef = D22831011E77D83C00627701 /* GiftModelView.m */; };
  120 + D22831091E77D8D500627701 /* GiftModel.m in Sources */ = {isa = PBXBuildFile; fileRef = D22831081E77D8D500627701 /* GiftModel.m */; };
116 D2575C461E76857100E3A8FC /* LVCAnimationManager.m in Sources */ = {isa = PBXBuildFile; fileRef = D2575C451E76857100E3A8FC /* LVCAnimationManager.m */; }; 121 D2575C461E76857100E3A8FC /* LVCAnimationManager.m in Sources */ = {isa = PBXBuildFile; fileRef = D2575C451E76857100E3A8FC /* LVCAnimationManager.m */; };
117 D2575C4A1E7685DE00E3A8FC /* UIView+Bubbling.m in Sources */ = {isa = PBXBuildFile; fileRef = D2575C481E7685DE00E3A8FC /* UIView+Bubbling.m */; }; 122 D2575C4A1E7685DE00E3A8FC /* UIView+Bubbling.m in Sources */ = {isa = PBXBuildFile; fileRef = D2575C481E7685DE00E3A8FC /* UIView+Bubbling.m */; };
118 D2575C671E76A25400E3A8FC /* LVCInteractionController.m in Sources */ = {isa = PBXBuildFile; fileRef = D2575C661E76A25400E3A8FC /* LVCInteractionController.m */; }; 123 D2575C671E76A25400E3A8FC /* LVCInteractionController.m in Sources */ = {isa = PBXBuildFile; fileRef = D2575C661E76A25400E3A8FC /* LVCInteractionController.m */; };
@@ -174,7 +179,7 @@ @@ -174,7 +179,7 @@
174 D2029B811E6EAAA50027CD92 /* LiveVideoCloud.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = LiveVideoCloud.app; sourceTree = BUILT_PRODUCTS_DIR; }; 179 D2029B811E6EAAA50027CD92 /* LiveVideoCloud.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = LiveVideoCloud.app; sourceTree = BUILT_PRODUCTS_DIR; };
175 D2029B851E6EAAA50027CD92 /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = "<group>"; }; 180 D2029B851E6EAAA50027CD92 /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = "<group>"; };
176 D2029B8E1E6EAAA50027CD92 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = "<group>"; }; 181 D2029B8E1E6EAAA50027CD92 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = "<group>"; };
177 - D2029B901E6EAAA50027CD92 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; }; 182 + D2029B901E6EAAA50027CD92 /* animation.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = animation.xcassets; sourceTree = "<group>"; };
178 D2029B931E6EAAA50027CD92 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = "<group>"; }; 183 D2029B931E6EAAA50027CD92 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = "<group>"; };
179 D2029B951E6EAAA50027CD92 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; }; 184 D2029B951E6EAAA50027CD92 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
180 D2029B9A1E6EAAA50027CD92 /* LiveVideoCloudTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = LiveVideoCloudTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; 185 D2029B9A1E6EAAA50027CD92 /* LiveVideoCloudTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = LiveVideoCloudTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
@@ -383,6 +388,16 @@ @@ -383,6 +388,16 @@
383 D2029CFF1E6EAE2E0027CD92 /* UtilKits.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UtilKits.h; sourceTree = "<group>"; }; 388 D2029CFF1E6EAE2E0027CD92 /* UtilKits.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UtilKits.h; sourceTree = "<group>"; };
384 D2029D121E6EAF8D0027CD92 /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = "<group>"; }; 389 D2029D121E6EAF8D0027CD92 /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = "<group>"; };
385 D2029D151E6EB00D0027CD92 /* AppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = "<group>"; }; 390 D2029D151E6EB00D0027CD92 /* AppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = "<group>"; };
  391 + D22830EF1E778C0F00627701 /* LiveBaseView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LiveBaseView.h; sourceTree = "<group>"; };
  392 + D22830F01E778C0F00627701 /* LiveBaseView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LiveBaseView.m; sourceTree = "<group>"; };
  393 + D22830FA1E77C2D900627701 /* BottomToolView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BottomToolView.h; sourceTree = "<group>"; };
  394 + D22830FB1E77C2D900627701 /* BottomToolView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BottomToolView.m; sourceTree = "<group>"; };
  395 + D22830FD1E77C69E00627701 /* GiftListView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GiftListView.h; sourceTree = "<group>"; };
  396 + D22830FE1E77C69E00627701 /* GiftListView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GiftListView.m; sourceTree = "<group>"; };
  397 + D22831001E77D83C00627701 /* GiftModelView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GiftModelView.h; sourceTree = "<group>"; };
  398 + D22831011E77D83C00627701 /* GiftModelView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GiftModelView.m; sourceTree = "<group>"; };
  399 + D22831071E77D8D500627701 /* GiftModel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GiftModel.h; sourceTree = "<group>"; };
  400 + D22831081E77D8D500627701 /* GiftModel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GiftModel.m; sourceTree = "<group>"; };
386 D2575C441E76857100E3A8FC /* LVCAnimationManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LVCAnimationManager.h; sourceTree = "<group>"; }; 401 D2575C441E76857100E3A8FC /* LVCAnimationManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LVCAnimationManager.h; sourceTree = "<group>"; };
387 D2575C451E76857100E3A8FC /* LVCAnimationManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LVCAnimationManager.m; sourceTree = "<group>"; }; 402 D2575C451E76857100E3A8FC /* LVCAnimationManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LVCAnimationManager.m; sourceTree = "<group>"; };
388 D2575C481E7685DE00E3A8FC /* UIView+Bubbling.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UIView+Bubbling.m"; sourceTree = "<group>"; }; 403 D2575C481E7685DE00E3A8FC /* UIView+Bubbling.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UIView+Bubbling.m"; sourceTree = "<group>"; };
@@ -491,7 +506,7 @@ @@ -491,7 +506,7 @@
491 D2029BD01E6EADE10027CD92 /* Classes */, 506 D2029BD01E6EADE10027CD92 /* Classes */,
492 D2029CD11E6EADE70027CD92 /* HttpService */, 507 D2029CD11E6EADE70027CD92 /* HttpService */,
493 D2029CD71E6EAE140027CD92 /* Resource */, 508 D2029CD71E6EAE140027CD92 /* Resource */,
494 - D2029B901E6EAAA50027CD92 /* Assets.xcassets */, 509 + D2029B901E6EAAA50027CD92 /* animation.xcassets */,
495 D2029CD61E6EADFB0027CD92 /* PrefixHeader.pch */, 510 D2029CD61E6EADFB0027CD92 /* PrefixHeader.pch */,
496 D2029B841E6EAAA50027CD92 /* Supporting Files */, 511 D2029B841E6EAAA50027CD92 /* Supporting Files */,
497 ); 512 );
@@ -1075,9 +1090,65 @@ @@ -1075,9 +1090,65 @@
1075 path = AppDelegate; 1090 path = AppDelegate;
1076 sourceTree = "<group>"; 1091 sourceTree = "<group>";
1077 }; 1092 };
  1093 + D22830F51E77C24900627701 /* GiftViews */ = {
  1094 + isa = PBXGroup;
  1095 + children = (
  1096 + D22830FD1E77C69E00627701 /* GiftListView.h */,
  1097 + D22830FE1E77C69E00627701 /* GiftListView.m */,
  1098 + D22831001E77D83C00627701 /* GiftModelView.h */,
  1099 + D22831011E77D83C00627701 /* GiftModelView.m */,
  1100 + );
  1101 + path = GiftViews;
  1102 + sourceTree = "<group>";
  1103 + };
  1104 + D22830F61E77C26C00627701 /* Chat */ = {
  1105 + isa = PBXGroup;
  1106 + children = (
  1107 + D22830F71E77C27A00627701 /* ChatViews */,
  1108 + );
  1109 + path = Chat;
  1110 + sourceTree = "<group>";
  1111 + };
  1112 + D22830F71E77C27A00627701 /* ChatViews */ = {
  1113 + isa = PBXGroup;
  1114 + children = (
  1115 + );
  1116 + path = ChatViews;
  1117 + sourceTree = "<group>";
  1118 + };
  1119 + D22830F81E77C2A700627701 /* TopToolView */ = {
  1120 + isa = PBXGroup;
  1121 + children = (
  1122 + );
  1123 + path = TopToolView;
  1124 + sourceTree = "<group>";
  1125 + };
  1126 + D22830F91E77C2D900627701 /* BottomToolView */ = {
  1127 + isa = PBXGroup;
  1128 + children = (
  1129 + D22830FA1E77C2D900627701 /* BottomToolView.h */,
  1130 + D22830FB1E77C2D900627701 /* BottomToolView.m */,
  1131 + );
  1132 + path = BottomToolView;
  1133 + sourceTree = "<group>";
  1134 + };
  1135 + D22831061E77D8D500627701 /* GiftModel */ = {
  1136 + isa = PBXGroup;
  1137 + children = (
  1138 + D22831071E77D8D500627701 /* GiftModel.h */,
  1139 + D22831081E77D8D500627701 /* GiftModel.m */,
  1140 + );
  1141 + path = GiftModel;
  1142 + sourceTree = "<group>";
  1143 + };
1078 D2575C431E76846900E3A8FC /* InteractionSections */ = { 1144 D2575C431E76846900E3A8FC /* InteractionSections */ = {
1079 isa = PBXGroup; 1145 isa = PBXGroup;
1080 children = ( 1146 children = (
  1147 + D22830F91E77C2D900627701 /* BottomToolView */,
  1148 + D22830F81E77C2A700627701 /* TopToolView */,
  1149 + D22830F61E77C26C00627701 /* Chat */,
  1150 + D22830EF1E778C0F00627701 /* LiveBaseView.h */,
  1151 + D22830F01E778C0F00627701 /* LiveBaseView.m */,
1081 D2575C651E76A25400E3A8FC /* LVCInteractionController.h */, 1152 D2575C651E76A25400E3A8FC /* LVCInteractionController.h */,
1082 D2575C661E76A25400E3A8FC /* LVCInteractionController.m */, 1153 D2575C661E76A25400E3A8FC /* LVCInteractionController.m */,
1083 D2575C681E76A42B00E3A8FC /* Gift */, 1154 D2575C681E76A42B00E3A8FC /* Gift */,
@@ -1102,7 +1173,9 @@ @@ -1102,7 +1173,9 @@
1102 children = ( 1173 children = (
1103 D2575C691E76A45400E3A8FC /* LVCGiftManager.h */, 1174 D2575C691E76A45400E3A8FC /* LVCGiftManager.h */,
1104 D2575C6A1E76A45400E3A8FC /* LVCGiftManager.m */, 1175 D2575C6A1E76A45400E3A8FC /* LVCGiftManager.m */,
  1176 + D22830F51E77C24900627701 /* GiftViews */,
1105 D2575C6C1E76A4F300E3A8FC /* GiftResource */, 1177 D2575C6C1E76A4F300E3A8FC /* GiftResource */,
  1178 + D22831061E77D8D500627701 /* GiftModel */,
1106 ); 1179 );
1107 path = Gift; 1180 path = Gift;
1108 sourceTree = "<group>"; 1181 sourceTree = "<group>";
@@ -1354,7 +1427,7 @@ @@ -1354,7 +1427,7 @@
1354 D2029CC91E6EADE10027CD92 /* SVProgressHUD.bundle in Resources */, 1427 D2029CC91E6EADE10027CD92 /* SVProgressHUD.bundle in Resources */,
1355 D2575C801E76A4F300E3A8FC /* resource.bundle in Resources */, 1428 D2575C801E76A4F300E3A8FC /* resource.bundle in Resources */,
1356 D2029B941E6EAAA50027CD92 /* LaunchScreen.storyboard in Resources */, 1429 D2029B941E6EAAA50027CD92 /* LaunchScreen.storyboard in Resources */,
1357 - D2029B911E6EAAA50027CD92 /* Assets.xcassets in Resources */, 1430 + D2029B911E6EAAA50027CD92 /* animation.xcassets in Resources */,
1358 D2029CB01E6EADE10027CD92 /* MJRefresh.bundle in Resources */, 1431 D2029CB01E6EADE10027CD92 /* MJRefresh.bundle in Resources */,
1359 D2575C7C1E76A4F300E3A8FC /* NHFighterView.nib in Resources */, 1432 D2575C7C1E76A4F300E3A8FC /* NHFighterView.nib in Resources */,
1360 812E50541E7699DC004F5FCD /* KSYGPUResource.bundle in Resources */, 1433 812E50541E7699DC004F5FCD /* KSYGPUResource.bundle in Resources */,
@@ -1384,6 +1457,7 @@ @@ -1384,6 +1457,7 @@
1384 buildActionMask = 2147483647; 1457 buildActionMask = 2147483647;
1385 files = ( 1458 files = (
1386 D2029CC31E6EADE10027CD92 /* UIImageView+HighlightedWebCache.m in Sources */, 1459 D2029CC31E6EADE10027CD92 /* UIImageView+HighlightedWebCache.m in Sources */,
  1460 + D22830FF1E77C69E00627701 /* GiftListView.m in Sources */,
1387 D2029CC01E6EADE10027CD92 /* UIImage+GIF.m in Sources */, 1461 D2029CC01E6EADE10027CD92 /* UIImage+GIF.m in Sources */,
1388 D2029BCF1E6EADD70027CD92 /* ZXTabBarController.m in Sources */, 1462 D2029BCF1E6EADD70027CD92 /* ZXTabBarController.m in Sources */,
1389 D2029D071E6EAE2E0027CD92 /* ZXConst.m in Sources */, 1463 D2029D071E6EAE2E0027CD92 /* ZXConst.m in Sources */,
@@ -1395,6 +1469,7 @@ @@ -1395,6 +1469,7 @@
1395 D2029CA01E6EADE10027CD92 /* NSObject+MJProperty.m in Sources */, 1469 D2029CA01E6EADE10027CD92 /* NSObject+MJProperty.m in Sources */,
1396 D2029CB51E6EADE10027CD92 /* SDiOSVersion.m in Sources */, 1470 D2029CB51E6EADE10027CD92 /* SDiOSVersion.m in Sources */,
1397 D2029C9C1E6EADE10027CD92 /* MJPropertyType.m in Sources */, 1471 D2029C9C1E6EADE10027CD92 /* MJPropertyType.m in Sources */,
  1472 + D22831091E77D8D500627701 /* GiftModel.m in Sources */,
1398 D2029CCD1E6EADE10027CD92 /* SearchModel.m in Sources */, 1473 D2029CCD1E6EADE10027CD92 /* SearchModel.m in Sources */,
1399 D2029CCB1E6EADE10027CD92 /* SVRadialGradientLayer.m in Sources */, 1474 D2029CCB1E6EADE10027CD92 /* SVRadialGradientLayer.m in Sources */,
1400 D2029CAF1E6EADE10027CD92 /* MJRefreshStateHeader.m in Sources */, 1475 D2029CAF1E6EADE10027CD92 /* MJRefreshStateHeader.m in Sources */,
@@ -1408,6 +1483,7 @@ @@ -1408,6 +1483,7 @@
1408 D2575C7A1E76A4F300E3A8FC /* NHCarViews.m in Sources */, 1483 D2575C7A1E76A4F300E3A8FC /* NHCarViews.m in Sources */,
1409 D2029CBC1E6EADE10027CD92 /* SDWebImageDownloaderOperation.m in Sources */, 1484 D2029CBC1E6EADE10027CD92 /* SDWebImageDownloaderOperation.m in Sources */,
1410 D2029CA51E6EADE10027CD92 /* MJRefreshFooter.m in Sources */, 1485 D2029CA51E6EADE10027CD92 /* MJRefreshFooter.m in Sources */,
  1486 + D22830FC1E77C2D900627701 /* BottomToolView.m in Sources */,
1411 D2029D161E6EB00D0027CD92 /* AppDelegate.m in Sources */, 1487 D2029D161E6EB00D0027CD92 /* AppDelegate.m in Sources */,
1412 D2029CB71E6EADE10027CD92 /* NSData+ImageContentType.m in Sources */, 1488 D2029CB71E6EADE10027CD92 /* NSData+ImageContentType.m in Sources */,
1413 D2029CD01E6EADE10027CD92 /* SearchPresenter.m in Sources */, 1489 D2029CD01E6EADE10027CD92 /* SearchPresenter.m in Sources */,
@@ -1429,6 +1505,7 @@ @@ -1429,6 +1505,7 @@
1429 D2029CC71E6EADE10027CD92 /* SVIndefiniteAnimatedView.m in Sources */, 1505 D2029CC71E6EADE10027CD92 /* SVIndefiniteAnimatedView.m in Sources */,
1430 D2029CA31E6EADE10027CD92 /* MJRefreshBackFooter.m in Sources */, 1506 D2029CA31E6EADE10027CD92 /* MJRefreshBackFooter.m in Sources */,
1431 D2575C4A1E7685DE00E3A8FC /* UIView+Bubbling.m in Sources */, 1507 D2575C4A1E7685DE00E3A8FC /* UIView+Bubbling.m in Sources */,
  1508 + D22831021E77D83C00627701 /* GiftModelView.m in Sources */,
1432 D2029CA61E6EADE10027CD92 /* MJRefreshHeader.m in Sources */, 1509 D2029CA61E6EADE10027CD92 /* MJRefreshHeader.m in Sources */,
1433 D2029CC41E6EADE10027CD92 /* UIImageView+WebCache.m in Sources */, 1510 D2029CC41E6EADE10027CD92 /* UIImageView+WebCache.m in Sources */,
1434 D2029CC81E6EADE10027CD92 /* SVProgressAnimatedView.m in Sources */, 1511 D2029CC81E6EADE10027CD92 /* SVProgressAnimatedView.m in Sources */,
@@ -1467,6 +1544,7 @@ @@ -1467,6 +1544,7 @@
1467 D2029CCA1E6EADE10027CD92 /* SVProgressHUD.m in Sources */, 1544 D2029CCA1E6EADE10027CD92 /* SVProgressHUD.m in Sources */,
1468 D2029CA81E6EADE10027CD92 /* MJRefreshAutoNormalFooter.m in Sources */, 1545 D2029CA81E6EADE10027CD92 /* MJRefreshAutoNormalFooter.m in Sources */,
1469 D2029C891E6EADE10027CD92 /* AFSecurityPolicy.m in Sources */, 1546 D2029C891E6EADE10027CD92 /* AFSecurityPolicy.m in Sources */,
  1547 + D22830F11E778C0F00627701 /* LiveBaseView.m in Sources */,
1470 D2029CBA1E6EADE10027CD92 /* SDWebImageDecoder.m in Sources */, 1548 D2029CBA1E6EADE10027CD92 /* SDWebImageDecoder.m in Sources */,
1471 D2029D081E6EAE2E0027CD92 /* ZXDeviceInfo.m in Sources */, 1549 D2029D081E6EAE2E0027CD92 /* ZXDeviceInfo.m in Sources */,
1472 D2029CC21E6EADE10027CD92 /* UIImage+WebP.m in Sources */, 1550 D2029CC21E6EADE10027CD92 /* UIImage+WebP.m in Sources */,
LiveVideoCloud/LiveVideoCloud/Classes/Sections/InteractionSections/BottomToolView/BottomToolView.h 0 → 100644
  1 +//
  2 +// BottomToolView.h
  3 +// LiveVideoCloud
  4 +//
  5 +// Created by 张旭 on 2017/3/14.
  6 +// Copyright © 2017年 cnlive. All rights reserved.
  7 +//
  8 +
  9 +#import "BaseView.h"
  10 +
  11 +typedef NS_ENUM(NSInteger, BtnClickType) {//底部按钮类型
  12 + BtnClickTypeChat = 1,//聊天按钮点击
  13 + BtnClickTypePriChat ,//私聊按钮点击
  14 + BtnClickTypeGift ,//礼物按钮点击
  15 +};
  16 +
  17 +@protocol bottomBtnDeledate <NSObject>
  18 +
  19 +- (void)bottomActionWithType:(BtnClickType)btnType;
  20 +
  21 +@end
  22 +@interface BottomToolView : BaseView
  23 +
  24 +@property (nonatomic) id <bottomBtnDeledate> delegate;
  25 +
  26 +@end
LiveVideoCloud/LiveVideoCloud/Classes/Sections/InteractionSections/BottomToolView/BottomToolView.m 0 → 100644
  1 +//
  2 +// BottomToolView.m
  3 +// LiveVideoCloud
  4 +//
  5 +// Created by 张旭 on 2017/3/14.
  6 +// Copyright © 2017年 cnlive. All rights reserved.
  7 +//
  8 +
  9 +#import "BottomToolView.h"
  10 +
  11 +@interface BottomToolView ()
  12 +
  13 +@property (nonatomic ,strong) UIButton * _Nullable chatBtn;
  14 +@property (nonatomic ,strong) UIButton * _Nullable privateChatBtn;
  15 +@property (nonatomic ,strong) UIButton * _Nullable giftBtn;
  16 +
  17 +@end
  18 +
  19 +@implementation BottomToolView
  20 +
  21 +- (instancetype)initWithFrame:(CGRect)frame
  22 +{
  23 + if (self = [super initWithFrame:frame]) {
  24 + [self addSubview:self.chatBtn];
  25 + [self addSubview:self.privateChatBtn];
  26 + [self addSubview:self.giftBtn];
  27 + }
  28 + return self;
  29 +}
  30 +
  31 +#pragma mark - buttonClick
  32 +- (void)chatAction
  33 +{
  34 +
  35 +}
  36 +
  37 +- (void)privateChatAction
  38 +{
  39 +
  40 +}
  41 +
  42 +- (void)giftAction
  43 +{
  44 + if ([self.delegate respondsToSelector:@selector(bottomActionWithType:)]) {
  45 + [self.delegate bottomActionWithType:BtnClickTypeGift];
  46 + }
  47 +}
  48 +
  49 +#pragma mark - getter
  50 +- (UIButton *)chatBtn
  51 +{
  52 + if (!_chatBtn)
  53 + {
  54 + UIButton *chatBtn = [UIButton buttonWithType:UIButtonTypeCustom];
  55 + chatBtn.frame = CGRectMake(10, (self.height - 45)*0.5, 45, 45);
  56 + [chatBtn setBackgroundImage:[UIImage imageNamed:@"LiveChatNormal"] forState:UIControlStateNormal];
  57 + [chatBtn setBackgroundImage:[UIImage imageNamed:@"LiveChatTouch"] forState:UIControlStateHighlighted];
  58 + [chatBtn addTarget:self action:@selector(chatAction) forControlEvents:UIControlEventTouchUpInside];
  59 + _chatBtn = chatBtn;
  60 + }
  61 + return _chatBtn;
  62 +}
  63 +
  64 +- (UIButton *)privateChatBtn
  65 +{
  66 + if (!_privateChatBtn)
  67 + {
  68 + UIButton *privateChatBtn = [UIButton buttonWithType:UIButtonTypeCustom];
  69 + privateChatBtn.frame = CGRectMake(self.width*0.5 - 50, (self.height - 45)*0.5, 45, 45);
  70 + [privateChatBtn setBackgroundImage:[UIImage imageNamed:@"LiveChatNormal"] forState:UIControlStateNormal];
  71 + [privateChatBtn setBackgroundImage:[UIImage imageNamed:@"LiveChatTouch"] forState:UIControlStateHighlighted];
  72 + [privateChatBtn addTarget:self action:@selector(privateChatAction) forControlEvents:UIControlEventTouchUpInside];
  73 + _privateChatBtn = privateChatBtn;
  74 + }
  75 + return _privateChatBtn;
  76 +}
  77 +
  78 +- (UIButton *)giftBtn
  79 +{
  80 + if (!_giftBtn)
  81 + {
  82 + UIButton *giftBtn = [UIButton buttonWithType:UIButtonTypeCustom];
  83 + giftBtn.frame = CGRectMake(self.width*0.5 + 10, (self.height - 45)*0.5, 45, 45);
  84 + [giftBtn setBackgroundImage:[UIImage imageNamed:@"LiveChatGiftNormal"] forState:UIControlStateNormal];
  85 + [giftBtn setBackgroundImage:[UIImage imageNamed:@"LiveChatGiftTouch"] forState:UIControlStateHighlighted];
  86 + [giftBtn addTarget:self action:@selector(giftAction) forControlEvents:UIControlEventTouchUpInside];
  87 + _giftBtn = giftBtn;
  88 + }
  89 + return _giftBtn;
  90 +}
  91 +
  92 +/*
  93 +// Only override drawRect: if you perform custom drawing.
  94 +// An empty implementation adversely affects performance during animation.
  95 +- (void)drawRect:(CGRect)rect {
  96 + // Drawing code
  97 +}
  98 +*/
  99 +
  100 +@end
LiveVideoCloud/LiveVideoCloud/Classes/Sections/InteractionSections/Gift/GiftModel/GiftModel.h 0 → 100644
  1 +//
  2 +// GiftModel.h
  3 +// LiveVideoCloud
  4 +//
  5 +// Created by 张旭 on 2017/3/14.
  6 +// Copyright © 2017年 cnlive. All rights reserved.
  7 +//
  8 +
  9 +#import "BaseModel.h"
  10 +
  11 +typedef NS_ENUM(NSInteger, GiftModelType) {//礼物类型
  12 + GiftModelTypeCommon = 1,//普通礼物
  13 + GiftModelTypeSpecial //特殊(豪华)礼物
  14 +};
  15 +
  16 +@interface GiftModel : BaseModel
  17 +
  18 +@property (nonatomic ,copy) NSString * _Nullable image;
  19 +@property (nonatomic ) GiftModelType type;
  20 +@property (nonatomic ,copy) NSString * _Nullable price;
  21 +
  22 +@end
LiveVideoCloud/LiveVideoCloud/Classes/Sections/InteractionSections/Gift/GiftModel/GiftModel.m 0 → 100644
  1 +//
  2 +// GiftModel.m
  3 +// LiveVideoCloud
  4 +//
  5 +// Created by 张旭 on 2017/3/14.
  6 +// Copyright © 2017年 cnlive. All rights reserved.
  7 +//
  8 +
  9 +#import "GiftModel.h"
  10 +
  11 +@implementation GiftModel
  12 +
  13 +@end
LiveVideoCloud/LiveVideoCloud/Classes/Sections/InteractionSections/Gift/GiftResource/NHPlaneViews.m
@@ -39,7 +39,7 @@ @@ -39,7 +39,7 @@
39 39
40 CGPathAddQuadCurveToPoint(path, NULL, endPoint.x, endPoint.y, endPoint.x, endPoint.y); 40 CGPathAddQuadCurveToPoint(path, NULL, endPoint.x, endPoint.y, endPoint.x, endPoint.y);
41 position.path = path; 41 position.path = path;
42 - position.duration = 4.f; 42 + position.duration = 5.f;
43 position.speed = 0.6; 43 position.speed = 0.6;
44 position.removedOnCompletion = NO; 44 position.removedOnCompletion = NO;
45 position.fillMode = kCAFillModeForwards; 45 position.fillMode = kCAFillModeForwards;
LiveVideoCloud/LiveVideoCloud/Classes/Sections/InteractionSections/Gift/GiftViews/GiftListView.h 0 → 100644
  1 +//
  2 +// GiftListView.h
  3 +// LiveVideoCloud
  4 +//
  5 +// Created by 张旭 on 2017/3/14.
  6 +// Copyright © 2017年 cnlive. All rights reserved.
  7 +//
  8 +
  9 +#import "BaseView.h"
  10 +
  11 +@interface GiftListView : BaseView
  12 +
  13 +@end
LiveVideoCloud/LiveVideoCloud/Classes/Sections/InteractionSections/Gift/GiftViews/GiftListView.m 0 → 100644
  1 +//
  2 +// GiftListView.m
  3 +// LiveVideoCloud
  4 +//
  5 +// Created by 张旭 on 2017/3/14.
  6 +// Copyright © 2017年 cnlive. All rights reserved.
  7 +//
  8 +
  9 +#import "GiftListView.h"
  10 +#import "GiftModel.h"
  11 +
  12 +#define MAX_LINE_COUNT 4
  13 +#define MAX_ROW_COUNT 2
  14 +
  15 +@interface GiftListView ()
  16 +
  17 +@property (nonatomic ,strong) NSArray <GiftModel *>* _Nullable giftArray;
  18 +
  19 +@end
  20 +
  21 +@implementation GiftListView
  22 +
  23 +- (instancetype)initWithFrame:(CGRect)frame
  24 +{
  25 + if (self = [super initWithFrame:frame]) {
  26 +
  27 +
  28 + UIScrollView *scrollView = [[UIScrollView alloc] initWithFrame:self.bounds];
  29 + scrollView.contentSize = CGSizeMake(self.width *(self.giftArray.count/(MAX_ROW_COUNT*MAX_LINE_COUNT) + 1), self.height);
  30 + scrollView.pagingEnabled = YES;
  31 + scrollView.bounces = NO;
  32 + scrollView.showsVerticalScrollIndicator = NO;
  33 + scrollView.showsHorizontalScrollIndicator = NO;
  34 + scrollView.backgroundColor = [UIColor blueColor];
  35 + [self addSubview:scrollView];
  36 +
  37 + int line = 0;
  38 + int row = 0;
  39 + CGFloat giftX = 0;
  40 + CGFloat giftY = 0;
  41 + int page = 0;
  42 + for (int i = 0; i < self.giftArray.count; i ++) {
  43 +
  44 + if (i % MAX_LINE_COUNT == 0 && i > 0) {
  45 + line ++;
  46 + }
  47 + if (i % (MAX_LINE_COUNT * MAX_ROW_COUNT) == 0 && i > 0) {
  48 + page++;
  49 + line = 0;
  50 + }
  51 + row = i % MAX_LINE_COUNT;
  52 + CGFloat giftWidth = self.width / MAX_LINE_COUNT * 1.0;
  53 + CGFloat giftHeight = self.height / MAX_ROW_COUNT * 1.0;
  54 + giftX = row * giftWidth + page * scrollView.width;
  55 + giftY = line * giftHeight;
  56 +
  57 + UIView *giftView = [self giftViewWithFrame:CGRectMake(giftX, giftY, giftWidth, giftHeight) model:self.giftArray[i]];
  58 + giftView.backgroundColor = ZXRandomColor;
  59 +
  60 + UIImageView *picImg = [[UIImageView alloc] initWithImage:[UIImage imageNamed:self.giftArray[i].image]];
  61 + picImg.centerX = giftView.width * 0.5;
  62 + picImg.centerY = giftView.height * 0.5;
  63 + [giftView addSubview:picImg];
  64 +
  65 + [scrollView addSubview:giftView];
  66 + }
  67 + }
  68 + return self;
  69 +}
  70 +
  71 +- (UIView *)giftViewWithFrame:(CGRect)frame model:(GiftModel *)model
  72 +{
  73 + UIView *giftView = [[UIView alloc] initWithFrame:frame];
  74 + switch (model.type) {
  75 + case GiftModelTypeCommon:
  76 + {
  77 + UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(giftView.width - 17, 3, 15, 15)];
  78 + imageView.backgroundColor = ZXRandomColor;
  79 + [giftView addSubview:imageView];
  80 + }
  81 + break;
  82 + case GiftModelTypeSpecial:
  83 + {
  84 +
  85 + }
  86 + break;
  87 + default:
  88 + break;
  89 + }
  90 +
  91 + UIButton *coin = [[UIButton alloc] initWithFrame:CGRectMake(0, giftView.height - 13, 15, 10)];
  92 + coin.centerX = giftView.width * 0.5;
  93 + coin.backgroundColor = ZXRandomColor;
  94 + [giftView addSubview:coin];
  95 + return giftView;
  96 +}
  97 +
  98 +- (NSArray *)giftArray
  99 +{
  100 + if (!_giftArray)
  101 + {
  102 + GiftModel *model = [[GiftModel alloc] init];
  103 + model.image = @"love";
  104 + model.type = GiftModelTypeCommon;
  105 + model.price = @"3";
  106 + _giftArray = [[NSArray alloc] initWithObjects:model,model,model,model,model,model,model,model,model,model, nil];
  107 + }
  108 + return _giftArray;
  109 +}
  110 +
  111 +/*
  112 +// Only override drawRect: if you perform custom drawing.
  113 +// An empty implementation adversely affects performance during animation.
  114 +- (void)drawRect:(CGRect)rect {
  115 + // Drawing code
  116 +}
  117 +*/
  118 +
  119 +@end
LiveVideoCloud/LiveVideoCloud/Classes/Sections/InteractionSections/Gift/GiftViews/GiftModelView.h 0 → 100644
  1 +//
  2 +// GiftModelView.h
  3 +// LiveVideoCloud
  4 +//
  5 +// Created by 张旭 on 2017/3/14.
  6 +// Copyright © 2017年 cnlive. All rights reserved.
  7 +//
  8 +
  9 +#import "BaseView.h"
  10 +
  11 +@class GiftModel;
  12 +@interface GiftModelView : BaseView
  13 +
  14 ++ (instancetype)giftViewWithModel:(GiftModel *)giftModel;
  15 +@end
LiveVideoCloud/LiveVideoCloud/Classes/Sections/InteractionSections/Gift/GiftViews/GiftModelView.m 0 → 100644
  1 +//
  2 +// GiftModelView.m
  3 +// LiveVideoCloud
  4 +//
  5 +// Created by 张旭 on 2017/3/14.
  6 +// Copyright © 2017年 cnlive. All rights reserved.
  7 +//
  8 +
  9 +#import "GiftModelView.h"
  10 +#import "GiftModel.h"
  11 +
  12 +@implementation GiftModelView
  13 +
  14 +//+ (instancetype)giftViewWithModel:(GiftModel *)giftModel
  15 +//{
  16 +// GiftModelView *view = [[GiftModelView alloc] init];
  17 +// view
  18 +// return ;
  19 +//}
  20 +
  21 +/*
  22 +// Only override drawRect: if you perform custom drawing.
  23 +// An empty implementation adversely affects performance during animation.
  24 +- (void)drawRect:(CGRect)rect {
  25 + // Drawing code
  26 +}
  27 +*/
  28 +
  29 +@end
LiveVideoCloud/LiveVideoCloud/Classes/Sections/InteractionSections/Gift/LVCGiftManager.m
@@ -23,7 +23,7 @@ @@ -23,7 +23,7 @@
23 //数组中放CGRect数据,CGRect的x和y分别作为控制点的x和y,CGRect的width和height作为结束点的x和y 23 //数组中放CGRect数据,CGRect的x和y分别作为控制点的x和y,CGRect的width和height作为结束点的x和y
24 //方法如下:数组内的每个元素代码一个控制点和结束点 24 //方法如下:数组内的每个元素代码一个控制点和结束点
25 NSMutableArray *pointArrs = [[NSMutableArray alloc] init]; 25 NSMutableArray *pointArrs = [[NSMutableArray alloc] init];
26 - CGFloat width = [UIScreen mainScreen].bounds.size.width / 2; 26 + CGFloat width = SCREEN_WIDTH / 2;
27 [pointArrs addObject:NSStringFromCGRect(CGRectMake(width, 300, width, 300))]; 27 [pointArrs addObject:NSStringFromCGRect(CGRectMake(width, 300, width, 300))];
28 [pointArrs addObject:NSStringFromCGRect(CGRectMake(width, 300, width, 300))]; 28 [pointArrs addObject:NSStringFromCGRect(CGRectMake(width, 300, width, 300))];
29 car.curveControlAndEndPoints = pointArrs; 29 car.curveControlAndEndPoints = pointArrs;
@@ -41,6 +41,10 @@ @@ -41,6 +41,10 @@
41 case GiftTypePlane: 41 case GiftTypePlane:
42 { 42 {
43 NHPlaneViews *plane = [NHPlaneViews loadPlaneViewWithPoint:CGPointMake(SCREEN_WIDTH + 232, 0)]; 43 NHPlaneViews *plane = [NHPlaneViews loadPlaneViewWithPoint:CGPointMake(SCREEN_WIDTH + 232, 0)];
  44 +// NSMutableArray *pointArrs = [[NSMutableArray alloc] init];
  45 +// [pointArrs addObject:NSStringFromCGRect(CGRectMake(290, 250, 290, 250))];
  46 +// [pointArrs addObject:NSStringFromCGRect(CGRectMake(290, 250, 290, 250))];
  47 +// plane.curveControlAndEndPoints = pointArrs;
44 [plane addAnimationsMoveToPoint:CGPointMake(SCREEN_WIDTH, 100) endPoint:CGPointMake(-500, 410)]; 48 [plane addAnimationsMoveToPoint:CGPointMake(SCREEN_WIDTH, 100) endPoint:CGPointMake(-500, 410)];
45 [toView addSubview:plane]; 49 [toView addSubview:plane];
46 } 50 }
LiveVideoCloud/LiveVideoCloud/Classes/Sections/InteractionSections/LVCInteractionController.m
@@ -7,10 +7,12 @@ @@ -7,10 +7,12 @@
7 // 7 //
8 8
9 #import "LVCInteractionController.h" 9 #import "LVCInteractionController.h"
10 -#import "LVCGiftManager.h" 10 +#import "LiveBaseView.h"
11 11
12 @interface LVCInteractionController () 12 @interface LVCInteractionController ()
13 13
  14 +@property (nonatomic ,strong) LiveBaseView * _Nullable liveBaseView;
  15 +
14 @end 16 @end
15 17
16 @implementation LVCInteractionController 18 @implementation LVCInteractionController
@@ -18,12 +20,22 @@ @@ -18,12 +20,22 @@
18 - (void)viewDidLoad { 20 - (void)viewDidLoad {
19 [super viewDidLoad]; 21 [super viewDidLoad];
20 // Do any additional setup after loading the view. 22 // Do any additional setup after loading the view.
21 - 23 + self.automaticallyAdjustsScrollViewInsets = NO;
  24 +}
  25 +
  26 +- (void)bindView
  27 +{
  28 + [self.view addSubview:self.liveBaseView];
22 } 29 }
23 30
24 -- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event 31 +- (LiveBaseView *)liveBaseView
25 { 32 {
26 - [LVCGiftManager giftType:GiftTypeFighter toView:self.view]; 33 + if (!_liveBaseView)
  34 + {
  35 + _liveBaseView = [[LiveBaseView alloc] initWithFrame:SCREEN_RECT];
  36 + _liveBaseView.backgroundColor = [UIColor greenColor];
  37 + }
  38 + return _liveBaseView;
27 } 39 }
28 40
29 - (void)didReceiveMemoryWarning { 41 - (void)didReceiveMemoryWarning {
LiveVideoCloud/LiveVideoCloud/Classes/Sections/InteractionSections/LiveBaseView.h 0 → 100644
  1 +//
  2 +// LiveBaseView.h
  3 +// LiveVideoCloud
  4 +//
  5 +// Created by 张旭 on 2017/3/14.
  6 +// Copyright © 2017年 cnlive. All rights reserved.
  7 +//
  8 +
  9 +#import "BaseView.h"
  10 +
  11 +@interface LiveBaseView : BaseView
  12 +
  13 +@end
LiveVideoCloud/LiveVideoCloud/Classes/Sections/InteractionSections/LiveBaseView.m 0 → 100644
  1 +
  2 +//
  3 +// LiveBaseView.m
  4 +// LiveVideoCloud
  5 +//
  6 +// Created by 张旭 on 2017/3/14.
  7 +// Copyright © 2017年 cnlive. All rights reserved.
  8 +//
  9 +
  10 +#import "LiveBaseView.h"
  11 +#import "LVCGiftManager.h"
  12 +#import "BottomToolView.h"
  13 +#import "GiftListView.h"
  14 +
  15 +@interface LiveBaseView ()<bottomBtnDeledate>
  16 +
  17 +@property (nonatomic ,strong) UIScrollView * _Nullable scrollView;
  18 +@property (nonatomic ,strong) BottomToolView* _Nullable bottomToolView;
  19 +@property (nonatomic ,strong) UIButton * _Nullable closeBtn;
  20 +@property (nonatomic ,strong) UIView * _Nullable currentPopView;
  21 +
  22 +@property (nonatomic ,strong) UIButton * _Nullable porschBtn;
  23 +@property (nonatomic ,strong) UIButton * _Nullable fightBtn;
  24 +@property (nonatomic ,strong) UIButton * _Nullable planeBtn;
  25 +
  26 +@end
  27 +
  28 +@implementation LiveBaseView
  29 +
  30 +- (instancetype)initWithFrame:(CGRect)frame
  31 +{
  32 + if (self = [super initWithFrame:frame]) {
  33 +
  34 + [self addSubview:self.scrollView];
  35 + [self.scrollView addSubview:self.bottomToolView];
  36 + [self addSubview:self.closeBtn];
  37 + [self addGestureRecognizer:[[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapGestureClick)]];
  38 +
  39 +// [self addSubview:self.porschBtn];
  40 +// [self addSubview:self.fightBtn];
  41 +// [self addSubview:self.planeBtn];
  42 + }
  43 + return self;
  44 +}
  45 +
  46 +#pragma mark - bottomBtnDelegate
  47 +- (void)bottomActionWithType:(BtnClickType)btnType
  48 +{
  49 + [self hiddenView:YES];
  50 + switch (btnType) {
  51 + case BtnClickTypeChat:
  52 + {
  53 +
  54 + }
  55 + break;
  56 + case BtnClickTypePriChat:
  57 + {
  58 +
  59 + }
  60 + break;
  61 + case BtnClickTypeGift:
  62 + {
  63 + GiftListView *giftListView = [[GiftListView alloc] initWithFrame:CGRectMake(0, SCREEN_HEIGHT - 200, SCREEN_WIDTH, 200)];
  64 + giftListView.backgroundColor = [UIColor redColor];
  65 + [self addSubview:giftListView];
  66 + self.currentPopView = giftListView;
  67 +
  68 +
  69 +
  70 +
  71 + }
  72 + break;
  73 + default:
  74 + break;
  75 + }
  76 +}
  77 +
  78 +- (void)hiddenView:(BOOL)isHidden
  79 +{
  80 + self.bottomToolView.hidden = isHidden;
  81 + self.closeBtn.hidden = isHidden;
  82 +}
  83 +
  84 +- (void)clearCurrentPopView
  85 +{
  86 + [UIView animateWithDuration:0.25 animations:^{
  87 +
  88 + self.currentPopView.frame = CGRectMake(0, SCREEN_HEIGHT, SCREEN_WIDTH, SCREEN_HEIGHT);
  89 + [self hiddenView:NO];
  90 + } completion:^(BOOL finished) {
  91 + [self.currentPopView removeFromSuperview];
  92 + }];
  93 +}
  94 +
  95 +#pragma mark - buttonClick
  96 +- (void)tapGestureClick
  97 +{
  98 + [self clearCurrentPopView];
  99 +}
  100 +
  101 +
  102 +- (void)porschAction
  103 +{
  104 + [LVCGiftManager giftType:GiftTypePorsch toView:self];
  105 +}
  106 +
  107 +- (void)fightAction
  108 +{
  109 + [LVCGiftManager giftType:GiftTypeFighter toView:self];
  110 +}
  111 +
  112 +- (void)planeAction
  113 +{
  114 + [LVCGiftManager giftType:GiftTypePlane toView:self];
  115 +}
  116 +
  117 +- (void)closeAction
  118 +{
  119 +
  120 +}
  121 +
  122 +#pragma mark - getter
  123 +- (UIScrollView *)scrollView
  124 +{
  125 + if (!_scrollView)
  126 + {
  127 + _scrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, SCREEN_WIDTH, SCREEN_HEIGHT)];
  128 + _scrollView.contentSize = CGSizeMake(SCREEN_WIDTH*2, SCREEN_HEIGHT);
  129 + _scrollView.contentOffset = CGPointMake(SCREEN_WIDTH, 0);
  130 + _scrollView.bounces = NO;
  131 + _scrollView.pagingEnabled = YES;
  132 + _scrollView.showsVerticalScrollIndicator = NO;
  133 + _scrollView.showsHorizontalScrollIndicator = NO;
  134 + _scrollView.backgroundColor = [UIColor clearColor];
  135 + }
  136 + return _scrollView;
  137 +}
  138 +
  139 +- (BottomToolView *)bottomToolView
  140 +{
  141 + if (!_bottomToolView)
  142 + {
  143 + _bottomToolView = [[BottomToolView alloc] initWithFrame:CGRectMake(SCREEN_WIDTH, SCREEN_HEIGHT - 60, SCREEN_WIDTH, 60)];
  144 + _bottomToolView.delegate = self;
  145 + _bottomToolView.backgroundColor = [UIColor lightGrayColor];
  146 + _bottomToolView.alpha = 0.7;
  147 + }
  148 + return _bottomToolView;
  149 +}
  150 +
  151 +- (UIButton *)closeBtn
  152 +{
  153 + if (!_closeBtn)
  154 + {
  155 + UIButton *closeBtn = [UIButton buttonWithType:UIButtonTypeCustom];
  156 + closeBtn.frame = CGRectMake(SCREEN_WIDTH - 43,SCREEN_HEIGHT - self.bottomToolView.height + (self.bottomToolView.height - 33)*0.5, 33, 33);
  157 + [closeBtn setBackgroundImage:[UIImage imageNamed:@"LiveCloseNormal"] forState:UIControlStateNormal];
  158 + [closeBtn setBackgroundImage:[UIImage imageNamed:@"LiveCloseTouch"] forState:UIControlStateHighlighted];
  159 + [closeBtn addTarget:self action:@selector(closeAction) forControlEvents:UIControlEventTouchUpInside];
  160 + _closeBtn = closeBtn;
  161 + }
  162 + return _closeBtn;
  163 +}
  164 +
  165 +- (UIButton *)porschBtn
  166 +{
  167 + if (!_porschBtn)
  168 + {
  169 + UIButton *porschBtn = [UIButton buttonWithType:UIButtonTypeCustom];
  170 + porschBtn.frame = CGRectMake(SCREEN_WIDTH - 80, 400, 80, 30);
  171 + [porschBtn setTitle:@"保时捷" forState:UIControlStateNormal];
  172 + [porschBtn setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
  173 + [porschBtn addTarget:self action:@selector(porschAction) forControlEvents:UIControlEventTouchUpInside];
  174 + _porschBtn = porschBtn;
  175 + }
  176 + return _porschBtn;
  177 +}
  178 +
  179 +- (UIButton *)fightBtn
  180 +{
  181 + if (!_fightBtn)
  182 + {
  183 + UIButton *fightBtn = [UIButton buttonWithType:UIButtonTypeCustom];
  184 + fightBtn.frame = CGRectMake(SCREEN_WIDTH - 80, 450, 80, 30);
  185 + [fightBtn setTitle:@"歼灭机" forState:UIControlStateNormal];
  186 + [fightBtn setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
  187 + [fightBtn addTarget:self action:@selector(fightAction) forControlEvents:UIControlEventTouchUpInside];
  188 + _fightBtn = fightBtn;
  189 + }
  190 + return _fightBtn;
  191 +}
  192 +
  193 +- (UIButton *)planeBtn
  194 +{
  195 + if (!_planeBtn)
  196 + {
  197 + UIButton *planeBtn = [UIButton buttonWithType:UIButtonTypeCustom];
  198 + planeBtn.frame = CGRectMake(SCREEN_WIDTH - 80, 500, 80, 30);
  199 + [planeBtn setTitle:@"客机" forState:UIControlStateNormal];
  200 + [planeBtn setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
  201 + [planeBtn addTarget:self action:@selector(planeAction) forControlEvents:UIControlEventTouchUpInside];
  202 + _planeBtn = planeBtn;
  203 + }
  204 + return _planeBtn;
  205 +}
  206 +
  207 +/*
  208 +// Only override drawRect: if you perform custom drawing.
  209 +// An empty implementation adversely affects performance during animation.
  210 +- (void)drawRect:(CGRect)rect {
  211 + // Drawing code
  212 +}
  213 +*/
  214 +
  215 +@end
LiveVideoCloud/LiveVideoCloud/UtilKits/DeviceInfo/ZXDeviceInfo.h
@@ -17,6 +17,10 @@ @@ -17,6 +17,10 @@
17 #define SCREEN_HEIGHT [ZXDeviceInfo mainScreenHeight] 17 #define SCREEN_HEIGHT [ZXDeviceInfo mainScreenHeight]
18 #endif 18 #endif
19 19
  20 +#ifndef SCREEN_RECT
  21 +#define SCREEN_RECT CGRectMake(0, 0, SCREEN_WIDTH, SCREEN_HEIGHT)
  22 +#endif
  23 +
20 @interface ZXDeviceInfo : NSObject 24 @interface ZXDeviceInfo : NSObject
21 25
22 /** 26 /**
LiveVideoCloud/LiveVideoCloud/Assets.xcassets/AppIcon.appiconset/Contents.json renamed to LiveVideoCloud/LiveVideoCloud/animation.xcassets/AppIcon.appiconset/Contents.json
LiveVideoCloud/LiveVideoCloud/Assets.xcassets/Contents.json renamed to LiveVideoCloud/LiveVideoCloud/animation.xcassets/Contents.json
LiveVideoCloud/LiveVideoCloud/Assets.xcassets/Interaction/Contents.json renamed to LiveVideoCloud/LiveVideoCloud/animation.xcassets/Interaction/Animation/Contents.json
LiveVideoCloud/LiveVideoCloud/Assets.xcassets/Interaction/ic_menu_bluepig.imageset/Contents.json renamed to LiveVideoCloud/LiveVideoCloud/animation.xcassets/Interaction/Animation/ic_menu_bluepig.imageset/Contents.json
LiveVideoCloud/LiveVideoCloud/Assets.xcassets/Interaction/ic_menu_bluepig.imageset/ic_menu_bluepig.png renamed to LiveVideoCloud/LiveVideoCloud/animation.xcassets/Interaction/Animation/ic_menu_bluepig.imageset/ic_menu_bluepig.png

26.1 KB

LiveVideoCloud/LiveVideoCloud/Assets.xcassets/Interaction/ic_menu_bluepig2.imageset/Contents.json renamed to LiveVideoCloud/LiveVideoCloud/animation.xcassets/Interaction/Animation/ic_menu_bluepig2.imageset/Contents.json
LiveVideoCloud/LiveVideoCloud/Assets.xcassets/Interaction/ic_menu_bluepig2.imageset/ic_menu_bluepig2.png renamed to LiveVideoCloud/LiveVideoCloud/animation.xcassets/Interaction/Animation/ic_menu_bluepig2.imageset/ic_menu_bluepig2.png

24.2 KB

LiveVideoCloud/LiveVideoCloud/Assets.xcassets/Interaction/ic_menu_greenpig.imageset/Contents.json renamed to LiveVideoCloud/LiveVideoCloud/animation.xcassets/Interaction/Animation/ic_menu_greenpig.imageset/Contents.json
LiveVideoCloud/LiveVideoCloud/Assets.xcassets/Interaction/ic_menu_greenpig.imageset/ic_menu_greenpig.png renamed to LiveVideoCloud/LiveVideoCloud/animation.xcassets/Interaction/Animation/ic_menu_greenpig.imageset/ic_menu_greenpig.png

26.9 KB

LiveVideoCloud/LiveVideoCloud/Assets.xcassets/Interaction/ic_menu_greenpig2.imageset/Contents.json renamed to LiveVideoCloud/LiveVideoCloud/animation.xcassets/Interaction/Animation/ic_menu_greenpig2.imageset/Contents.json
LiveVideoCloud/LiveVideoCloud/Assets.xcassets/Interaction/ic_menu_greenpig2.imageset/ic_menu_greenpig2.png renamed to LiveVideoCloud/LiveVideoCloud/animation.xcassets/Interaction/Animation/ic_menu_greenpig2.imageset/ic_menu_greenpig2.png

24.5 KB

LiveVideoCloud/LiveVideoCloud/Assets.xcassets/Interaction/ic_menu_pinkpig.imageset/Contents.json renamed to LiveVideoCloud/LiveVideoCloud/animation.xcassets/Interaction/Animation/ic_menu_pinkpig.imageset/Contents.json
LiveVideoCloud/LiveVideoCloud/Assets.xcassets/Interaction/ic_menu_pinkpig.imageset/ic_menu_pinkpig.png renamed to LiveVideoCloud/LiveVideoCloud/animation.xcassets/Interaction/Animation/ic_menu_pinkpig.imageset/ic_menu_pinkpig.png

24.3 KB

LiveVideoCloud/LiveVideoCloud/Assets.xcassets/Interaction/ic_menu_pinkpig2.imageset/Contents.json renamed to LiveVideoCloud/LiveVideoCloud/animation.xcassets/Interaction/Animation/ic_menu_pinkpig2.imageset/Contents.json
LiveVideoCloud/LiveVideoCloud/Assets.xcassets/Interaction/ic_menu_pinkpig2.imageset/ic_menu_pinkpig2.png renamed to LiveVideoCloud/LiveVideoCloud/animation.xcassets/Interaction/Animation/ic_menu_pinkpig2.imageset/ic_menu_pinkpig2.png

26.1 KB

LiveVideoCloud/LiveVideoCloud/Assets.xcassets/Interaction/ic_menu_purplepig.imageset/Contents.json renamed to LiveVideoCloud/LiveVideoCloud/animation.xcassets/Interaction/Animation/ic_menu_purplepig.imageset/Contents.json
LiveVideoCloud/LiveVideoCloud/Assets.xcassets/Interaction/ic_menu_purplepig.imageset/ic_menu_purplepig.png renamed to LiveVideoCloud/LiveVideoCloud/animation.xcassets/Interaction/Animation/ic_menu_purplepig.imageset/ic_menu_purplepig.png

26.3 KB

LiveVideoCloud/LiveVideoCloud/Assets.xcassets/Interaction/ic_menu_purplepig2.imageset/Contents.json renamed to LiveVideoCloud/LiveVideoCloud/animation.xcassets/Interaction/Animation/ic_menu_purplepig2.imageset/Contents.json
LiveVideoCloud/LiveVideoCloud/Assets.xcassets/Interaction/ic_menu_purplepig2.imageset/ic_menu_purplepig2.png renamed to LiveVideoCloud/LiveVideoCloud/animation.xcassets/Interaction/Animation/ic_menu_purplepig2.imageset/ic_menu_purplepig2.png

24.4 KB

LiveVideoCloud/LiveVideoCloud/Assets.xcassets/Interaction/ic_menu_yellowpig.imageset/Contents.json renamed to LiveVideoCloud/LiveVideoCloud/animation.xcassets/Interaction/Animation/ic_menu_yellowpig.imageset/Contents.json
LiveVideoCloud/LiveVideoCloud/Assets.xcassets/Interaction/ic_menu_yellowpig.imageset/ic_menu_yellowpig.png renamed to LiveVideoCloud/LiveVideoCloud/animation.xcassets/Interaction/Animation/ic_menu_yellowpig.imageset/ic_menu_yellowpig.png

26.2 KB

LiveVideoCloud/LiveVideoCloud/Assets.xcassets/Interaction/ic_menu_yellowpig2.imageset/Contents.json renamed to LiveVideoCloud/LiveVideoCloud/animation.xcassets/Interaction/Animation/ic_menu_yellowpig2.imageset/Contents.json
LiveVideoCloud/LiveVideoCloud/Assets.xcassets/Interaction/ic_menu_yellowpig2.imageset/ic_menu_yellowpig2.png renamed to LiveVideoCloud/LiveVideoCloud/animation.xcassets/Interaction/Animation/ic_menu_yellowpig2.imageset/ic_menu_yellowpig2.png

24.4 KB

LiveVideoCloud/LiveVideoCloud/Assets.xcassets/Interaction/love.imageset/Contents.json renamed to LiveVideoCloud/LiveVideoCloud/animation.xcassets/Interaction/Animation/love.imageset/Contents.json
LiveVideoCloud/LiveVideoCloud/Assets.xcassets/Interaction/love.imageset/love@2x.png renamed to LiveVideoCloud/LiveVideoCloud/animation.xcassets/Interaction/Animation/love.imageset/love@2x.png

1.9 KB

LiveVideoCloud/LiveVideoCloud/Assets.xcassets/Interaction/love.imageset/love@3x.png renamed to LiveVideoCloud/LiveVideoCloud/animation.xcassets/Interaction/Animation/love.imageset/love@3x.png

2.99 KB

LiveVideoCloud/LiveVideoCloud/animation.xcassets/Interaction/Click on the comment.imageset/Click on the comment.png 0 → 100644

5.72 KB

LiveVideoCloud/LiveVideoCloud/animation.xcassets/Interaction/Click on the comment.imageset/Contents.json 0 → 100644
  1 +{
  2 + "images" : [
  3 + {
  4 + "idiom" : "universal",
  5 + "scale" : "1x"
  6 + },
  7 + {
  8 + "idiom" : "universal",
  9 + "scale" : "2x"
  10 + },
  11 + {
  12 + "idiom" : "universal",
  13 + "scale" : "3x"
  14 + },
  15 + {
  16 + "idiom" : "iphone",
  17 + "scale" : "1x"
  18 + },
  19 + {
  20 + "idiom" : "iphone",
  21 + "scale" : "2x"
  22 + },
  23 + {
  24 + "idiom" : "iphone",
  25 + "filename" : "Click on the comment.png",
  26 + "scale" : "3x"
  27 + }
  28 + ],
  29 + "info" : {
  30 + "version" : 1,
  31 + "author" : "xcode"
  32 + }
  33 +}
0 \ No newline at end of file 34 \ No newline at end of file
LiveVideoCloud/LiveVideoCloud/animation.xcassets/Interaction/Close the open.imageset/Close the open.png 0 → 100644

1.59 KB

LiveVideoCloud/LiveVideoCloud/animation.xcassets/Interaction/Close the open.imageset/Contents.json 0 → 100644
  1 +{
  2 + "images" : [
  3 + {
  4 + "idiom" : "universal",
  5 + "scale" : "1x"
  6 + },
  7 + {
  8 + "idiom" : "universal",
  9 + "scale" : "2x"
  10 + },
  11 + {
  12 + "idiom" : "universal",
  13 + "filename" : "Close the open.png",
  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/Assets.xcassets/tabBar/Contents.json renamed to LiveVideoCloud/LiveVideoCloud/animation.xcassets/Interaction/Contents.json
LiveVideoCloud/LiveVideoCloud/animation.xcassets/Interaction/LiveChatGiftNormal.imageset/Contents.json 0 → 100644
  1 +{
  2 + "images" : [
  3 + {
  4 + "idiom" : "universal",
  5 + "scale" : "1x"
  6 + },
  7 + {
  8 + "idiom" : "universal",
  9 + "scale" : "2x"
  10 + },
  11 + {
  12 + "idiom" : "universal",
  13 + "scale" : "3x"
  14 + },
  15 + {
  16 + "idiom" : "iphone",
  17 + "scale" : "1x"
  18 + },
  19 + {
  20 + "idiom" : "iphone",
  21 + "scale" : "2x"
  22 + },
  23 + {
  24 + "idiom" : "iphone",
  25 + "filename" : "LiveChatGiftNormal.png",
  26 + "scale" : "3x"
  27 + }
  28 + ],
  29 + "info" : {
  30 + "version" : 1,
  31 + "author" : "xcode"
  32 + }
  33 +}
0 \ No newline at end of file 34 \ No newline at end of file
LiveVideoCloud/LiveVideoCloud/animation.xcassets/Interaction/LiveChatGiftNormal.imageset/LiveChatGiftNormal.png 0 → 100644

5.07 KB

LiveVideoCloud/LiveVideoCloud/animation.xcassets/Interaction/LiveChatGiftTouch.imageset/Contents.json 0 → 100644
  1 +{
  2 + "images" : [
  3 + {
  4 + "idiom" : "universal",
  5 + "scale" : "1x"
  6 + },
  7 + {
  8 + "idiom" : "universal",
  9 + "scale" : "2x"
  10 + },
  11 + {
  12 + "idiom" : "universal",
  13 + "scale" : "3x"
  14 + },
  15 + {
  16 + "idiom" : "iphone",
  17 + "scale" : "1x"
  18 + },
  19 + {
  20 + "idiom" : "iphone",
  21 + "scale" : "2x"
  22 + },
  23 + {
  24 + "idiom" : "iphone",
  25 + "filename" : "LiveChatGiftTouch.png",
  26 + "scale" : "3x"
  27 + }
  28 + ],
  29 + "info" : {
  30 + "version" : 1,
  31 + "author" : "xcode"
  32 + }
  33 +}
0 \ No newline at end of file 34 \ No newline at end of file
LiveVideoCloud/LiveVideoCloud/animation.xcassets/Interaction/LiveChatGiftTouch.imageset/LiveChatGiftTouch.png 0 → 100644

5.23 KB

LiveVideoCloud/LiveVideoCloud/animation.xcassets/Interaction/LiveChatNormal.imageset/Contents.json 0 → 100644
  1 +{
  2 + "images" : [
  3 + {
  4 + "idiom" : "universal",
  5 + "scale" : "1x"
  6 + },
  7 + {
  8 + "idiom" : "universal",
  9 + "scale" : "2x"
  10 + },
  11 + {
  12 + "idiom" : "universal",
  13 + "scale" : "3x"
  14 + },
  15 + {
  16 + "idiom" : "iphone",
  17 + "scale" : "1x"
  18 + },
  19 + {
  20 + "idiom" : "iphone",
  21 + "scale" : "2x"
  22 + },
  23 + {
  24 + "idiom" : "iphone",
  25 + "filename" : "LiveChatNormal.png",
  26 + "scale" : "3x"
  27 + }
  28 + ],
  29 + "info" : {
  30 + "version" : 1,
  31 + "author" : "xcode"
  32 + }
  33 +}
0 \ No newline at end of file 34 \ No newline at end of file
LiveVideoCloud/LiveVideoCloud/animation.xcassets/Interaction/LiveChatNormal.imageset/LiveChatNormal.png 0 → 100644

6.08 KB

LiveVideoCloud/LiveVideoCloud/animation.xcassets/Interaction/LiveChatTouch.imageset/Contents.json 0 → 100644
  1 +{
  2 + "images" : [
  3 + {
  4 + "idiom" : "universal",
  5 + "scale" : "1x"
  6 + },
  7 + {
  8 + "idiom" : "universal",
  9 + "scale" : "2x"
  10 + },
  11 + {
  12 + "idiom" : "universal",
  13 + "scale" : "3x"
  14 + },
  15 + {
  16 + "idiom" : "iphone",
  17 + "scale" : "1x"
  18 + },
  19 + {
  20 + "idiom" : "iphone",
  21 + "scale" : "2x"
  22 + },
  23 + {
  24 + "idiom" : "iphone",
  25 + "filename" : "LiveChatTouch.png",
  26 + "scale" : "3x"
  27 + }
  28 + ],
  29 + "info" : {
  30 + "version" : 1,
  31 + "author" : "xcode"
  32 + }
  33 +}
0 \ No newline at end of file 34 \ No newline at end of file
LiveVideoCloud/LiveVideoCloud/animation.xcassets/Interaction/LiveChatTouch.imageset/LiveChatTouch.png 0 → 100644

6.19 KB

LiveVideoCloud/LiveVideoCloud/animation.xcassets/Interaction/LiveCloseNormal.imageset/Contents.json 0 → 100644
  1 +{
  2 + "images" : [
  3 + {
  4 + "idiom" : "universal",
  5 + "scale" : "1x"
  6 + },
  7 + {
  8 + "idiom" : "universal",
  9 + "scale" : "2x"
  10 + },
  11 + {
  12 + "idiom" : "universal",
  13 + "scale" : "3x"
  14 + },
  15 + {
  16 + "idiom" : "iphone",
  17 + "scale" : "1x"
  18 + },
  19 + {
  20 + "idiom" : "iphone",
  21 + "scale" : "2x"
  22 + },
  23 + {
  24 + "idiom" : "iphone",
  25 + "filename" : "LiveCloseNormal.png",
  26 + "scale" : "3x"
  27 + }
  28 + ],
  29 + "info" : {
  30 + "version" : 1,
  31 + "author" : "xcode"
  32 + }
  33 +}
0 \ No newline at end of file 34 \ No newline at end of file
LiveVideoCloud/LiveVideoCloud/animation.xcassets/Interaction/LiveCloseNormal.imageset/LiveCloseNormal.png 0 → 100644

5.67 KB

LiveVideoCloud/LiveVideoCloud/animation.xcassets/Interaction/LiveCloseTouch.imageset/Contents.json 0 → 100644
  1 +{
  2 + "images" : [
  3 + {
  4 + "idiom" : "universal",
  5 + "scale" : "1x"
  6 + },
  7 + {
  8 + "idiom" : "universal",
  9 + "scale" : "2x"
  10 + },
  11 + {
  12 + "idiom" : "universal",
  13 + "scale" : "3x"
  14 + },
  15 + {
  16 + "idiom" : "iphone",
  17 + "scale" : "1x"
  18 + },
  19 + {
  20 + "idiom" : "iphone",
  21 + "scale" : "2x"
  22 + },
  23 + {
  24 + "idiom" : "iphone",
  25 + "filename" : "LiveCloseTouch.png",
  26 + "scale" : "3x"
  27 + }
  28 + ],
  29 + "info" : {
  30 + "version" : 1,
  31 + "author" : "xcode"
  32 + }
  33 +}
0 \ No newline at end of file 34 \ No newline at end of file
LiveVideoCloud/LiveVideoCloud/animation.xcassets/Interaction/LiveCloseTouch.imageset/LiveCloseTouch.png 0 → 100644

5.62 KB

LiveVideoCloud/LiveVideoCloud/animation.xcassets/Interaction/comments.imageset/Contents.json 0 → 100644
  1 +{
  2 + "images" : [
  3 + {
  4 + "idiom" : "universal",
  5 + "scale" : "1x"
  6 + },
  7 + {
  8 + "idiom" : "universal",
  9 + "scale" : "2x"
  10 + },
  11 + {
  12 + "idiom" : "universal",
  13 + "scale" : "3x"
  14 + },
  15 + {
  16 + "idiom" : "iphone",
  17 + "scale" : "1x"
  18 + },
  19 + {
  20 + "idiom" : "iphone",
  21 + "scale" : "2x"
  22 + },
  23 + {
  24 + "idiom" : "iphone",
  25 + "filename" : "comments.png",
  26 + "scale" : "3x"
  27 + }
  28 + ],
  29 + "info" : {
  30 + "version" : 1,
  31 + "author" : "xcode"
  32 + }
  33 +}
0 \ No newline at end of file 34 \ No newline at end of file
LiveVideoCloud/LiveVideoCloud/animation.xcassets/Interaction/comments.imageset/comments.png 0 → 100644

5.88 KB

LiveVideoCloud/LiveVideoCloud/animation.xcassets/Interaction/private chat.imageset/1 2.png 0 → 100644

7.63 KB

LiveVideoCloud/LiveVideoCloud/animation.xcassets/Interaction/private chat.imageset/Contents.json 0 → 100644
  1 +{
  2 + "images" : [
  3 + {
  4 + "idiom" : "universal",
  5 + "filename" : "1 2.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/Assets.xcassets/bottom_shadow.imageset/Contents.json renamed to LiveVideoCloud/LiveVideoCloud/animation.xcassets/bottom_shadow.imageset/Contents.json
LiveVideoCloud/LiveVideoCloud/Assets.xcassets/bottom_shadow.imageset/bottom_shadow.png renamed to LiveVideoCloud/LiveVideoCloud/animation.xcassets/bottom_shadow.imageset/bottom_shadow.png

1.12 KB

LiveVideoCloud/LiveVideoCloud/Assets.xcassets/dot.imageset/Contents.json renamed to LiveVideoCloud/LiveVideoCloud/animation.xcassets/dot.imageset/Contents.json
LiveVideoCloud/LiveVideoCloud/Assets.xcassets/dot.imageset/dot@3x.png renamed to LiveVideoCloud/LiveVideoCloud/animation.xcassets/dot.imageset/dot@3x.png

335 Bytes

LiveVideoCloud/LiveVideoCloud/Assets.xcassets/fullscreen.imageset/Contents.json renamed to LiveVideoCloud/LiveVideoCloud/animation.xcassets/fullscreen.imageset/Contents.json
LiveVideoCloud/LiveVideoCloud/Assets.xcassets/fullscreen.imageset/fullscreen@3x.png renamed to LiveVideoCloud/LiveVideoCloud/animation.xcassets/fullscreen.imageset/fullscreen@3x.png

1.18 KB

LiveVideoCloud/LiveVideoCloud/Assets.xcassets/nonfullscreen.imageset/Contents.json renamed to LiveVideoCloud/LiveVideoCloud/animation.xcassets/nonfullscreen.imageset/Contents.json
LiveVideoCloud/LiveVideoCloud/Assets.xcassets/nonfullscreen.imageset/nonfullscreen@3x.png renamed to LiveVideoCloud/LiveVideoCloud/animation.xcassets/nonfullscreen.imageset/nonfullscreen@3x.png

1.19 KB

LiveVideoCloud/LiveVideoCloud/Assets.xcassets/pause.imageset/Contents.json renamed to LiveVideoCloud/LiveVideoCloud/animation.xcassets/pause.imageset/Contents.json
LiveVideoCloud/LiveVideoCloud/Assets.xcassets/pause.imageset/pause@3x.png renamed to LiveVideoCloud/LiveVideoCloud/animation.xcassets/pause.imageset/pause@3x.png

188 Bytes

LiveVideoCloud/LiveVideoCloud/Assets.xcassets/play.imageset/Contents.json renamed to LiveVideoCloud/LiveVideoCloud/animation.xcassets/play.imageset/Contents.json
LiveVideoCloud/LiveVideoCloud/Assets.xcassets/play.imageset/play@3x.png renamed to LiveVideoCloud/LiveVideoCloud/animation.xcassets/play.imageset/play@3x.png

660 Bytes

LiveVideoCloud/LiveVideoCloud/Assets.xcassets/play_back.imageset/Contents.json renamed to LiveVideoCloud/LiveVideoCloud/animation.xcassets/play_back.imageset/Contents.json
LiveVideoCloud/LiveVideoCloud/Assets.xcassets/play_back.imageset/play_back.png renamed to LiveVideoCloud/LiveVideoCloud/animation.xcassets/play_back.imageset/play_back.png

1.47 KB

LiveVideoCloud/LiveVideoCloud/Assets.xcassets/tabBar/Begin to live.imageset/Begin to live.png renamed to LiveVideoCloud/LiveVideoCloud/animation.xcassets/tabBar/Begin to live.imageset/Begin to live.png

11.6 KB

LiveVideoCloud/LiveVideoCloud/Assets.xcassets/tabBar/Begin to live.imageset/Contents.json renamed to LiveVideoCloud/LiveVideoCloud/animation.xcassets/tabBar/Begin to live.imageset/Contents.json
LiveVideoCloud/LiveVideoCloud/animation.xcassets/tabBar/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/Assets.xcassets/tabBar/home page-click on.imageset/Contents.json renamed to LiveVideoCloud/LiveVideoCloud/animation.xcassets/tabBar/home page-click on.imageset/Contents.json
LiveVideoCloud/LiveVideoCloud/Assets.xcassets/tabBar/home page-click on.imageset/home page-click on.png renamed to LiveVideoCloud/LiveVideoCloud/animation.xcassets/tabBar/home page-click on.imageset/home page-click on.png

2.93 KB

LiveVideoCloud/LiveVideoCloud/Assets.xcassets/tabBar/home page.imageset/Contents.json renamed to LiveVideoCloud/LiveVideoCloud/animation.xcassets/tabBar/home page.imageset/Contents.json
LiveVideoCloud/LiveVideoCloud/Assets.xcassets/tabBar/home page.imageset/home page.png renamed to LiveVideoCloud/LiveVideoCloud/animation.xcassets/tabBar/home page.imageset/home page.png

2.68 KB

LiveVideoCloud/LiveVideoCloud/Assets.xcassets/tabBar/my-click on.imageset/Contents.json renamed to LiveVideoCloud/LiveVideoCloud/animation.xcassets/tabBar/my-click on.imageset/Contents.json
LiveVideoCloud/LiveVideoCloud/Assets.xcassets/tabBar/my-click on.imageset/my-click on.png renamed to LiveVideoCloud/LiveVideoCloud/animation.xcassets/tabBar/my-click on.imageset/my-click on.png

3.01 KB

LiveVideoCloud/LiveVideoCloud/Assets.xcassets/tabBar/my.imageset/Contents.json renamed to LiveVideoCloud/LiveVideoCloud/animation.xcassets/tabBar/my.imageset/Contents.json
LiveVideoCloud/LiveVideoCloud/Assets.xcassets/tabBar/my.imageset/my.png renamed to LiveVideoCloud/LiveVideoCloud/animation.xcassets/tabBar/my.imageset/my.png

2.89 KB

LiveVideoCloud/LiveVideoCloud/Assets.xcassets/top_shadow.imageset/Contents.json renamed to LiveVideoCloud/LiveVideoCloud/animation.xcassets/top_shadow.imageset/Contents.json
LiveVideoCloud/LiveVideoCloud/Assets.xcassets/top_shadow.imageset/top_shadow.png renamed to LiveVideoCloud/LiveVideoCloud/animation.xcassets/top_shadow.imageset/top_shadow.png

2.95 KB

LiveVideoCloud/LiveVideoCloud/Assets.xcassets/返回.imageset/Contents.json renamed to LiveVideoCloud/LiveVideoCloud/animation.xcassets/返回.imageset/Contents.json
LiveVideoCloud/LiveVideoCloud/Assets.xcassets/返回.imageset/返回@3x.png renamed to LiveVideoCloud/LiveVideoCloud/animation.xcassets/返回.imageset/返回@3x.png

1.35 KB