Commit 0f7409ada72bf30b0457cbc942962fd884457a50

Authored by 朱林
1 parent 98341c78

删除多余文件

Showing 35 changed files with 28 additions and 3124 deletions
LiveVideoCloud.xcodeproj/project.pbxproj
... ... @@ -97,7 +97,6 @@
97 97 8178D46E1F0225E500AA78A4 /* LVCTelevisionCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 8178D46D1F0225E500AA78A4 /* LVCTelevisionCell.m */; };
98 98 8178D4711F0239AD00AA78A4 /* LVCPlayerLoadingView.m in Sources */ = {isa = PBXBuildFile; fileRef = 8178D4701F0239AD00AA78A4 /* LVCPlayerLoadingView.m */; };
99 99 81A483081E88B6140097A80A /* UIView+ViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 81A483071E88B6140097A80A /* UIView+ViewController.m */; };
100   - 81F1C8381E8BBDDA0085C2B8 /* MHPagingScrollView.m in Sources */ = {isa = PBXBuildFile; fileRef = 81F1C8371E8BBDDA0085C2B8 /* MHPagingScrollView.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
101 100 81F1C8401E8BC5CC0085C2B8 /* NSArray+Safety.m in Sources */ = {isa = PBXBuildFile; fileRef = 81F1C83F1E8BC5CC0085C2B8 /* NSArray+Safety.m */; };
102 101 81FB5B3C1E7A6FFC00F98E1D /* SevenSwitch.m in Sources */ = {isa = PBXBuildFile; fileRef = 81FB5B3B1E7A6FFC00F98E1D /* SevenSwitch.m */; };
103 102 D2029B861E6EAAA50027CD92 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = D2029B851E6EAAA50027CD92 /* main.m */; };
... ... @@ -186,13 +185,9 @@
186 185 D209AD6B1EC580F100D82E3B /* LVCWebViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = D209AD6A1EC580F100D82E3B /* LVCWebViewController.m */; };
187 186 D209AD6E1EC583B700D82E3B /* MineMessageController.m in Sources */ = {isa = PBXBuildFile; fileRef = D209AD6D1EC583B700D82E3B /* MineMessageController.m */; };
188 187 D209AD711EC583D100D82E3B /* MineAccountController.m in Sources */ = {isa = PBXBuildFile; fileRef = D209AD701EC583D100D82E3B /* MineAccountController.m */; };
189   - D20C82BE1EEEA89700BB609F /* LVCHomePageListModel.m in Sources */ = {isa = PBXBuildFile; fileRef = D20C82BD1EEEA89700BB609F /* LVCHomePageListModel.m */; };
190   - D214CB4F1EF7BD890014EEBA /* V8HorizontalPickerView.m in Sources */ = {isa = PBXBuildFile; fileRef = D214CB4D1EF7BD890014EEBA /* V8HorizontalPickerView.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
191   - D214CB521EF7CB310014EEBA /* LVCChannelPagingView.m in Sources */ = {isa = PBXBuildFile; fileRef = D214CB511EF7CB310014EEBA /* LVCChannelPagingView.m */; };
192 188 D217A24A1E7B76C7003B44CB /* PresentView.m in Sources */ = {isa = PBXBuildFile; fileRef = D217A2471E7B76C7003B44CB /* PresentView.m */; };
193 189 D217A24B1E7B76C7003B44CB /* PresentViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = D217A2491E7B76C7003B44CB /* PresentViewCell.m */; };
194 190 D217A24E1E7B77C7003B44CB /* ComboCell.m in Sources */ = {isa = PBXBuildFile; fileRef = D217A24D1E7B77C7003B44CB /* ComboCell.m */; };
195   - D219E86B1EFD04A700650F38 /* LVCBigHorizontalCollectionViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = D219E86A1EFD04A700650F38 /* LVCBigHorizontalCollectionViewCell.m */; };
196 191 D224B1971E826ED800CC61D0 /* ChatBarrageAnimAction.m in Sources */ = {isa = PBXBuildFile; fileRef = D224B1961E826ED800CC61D0 /* ChatBarrageAnimAction.m */; };
197 192 D22830F11E778C0F00627701 /* LiveBaseView.m in Sources */ = {isa = PBXBuildFile; fileRef = D22830F01E778C0F00627701 /* LiveBaseView.m */; };
198 193 D22830FC1E77C2D900627701 /* BottomToolView.m in Sources */ = {isa = PBXBuildFile; fileRef = D22830FB1E77C2D900627701 /* BottomToolView.m */; };
... ... @@ -202,20 +197,11 @@
202 197 D23696841E7FC6A900E4BF71 /* chatListCell.m in Sources */ = {isa = PBXBuildFile; fileRef = D23696831E7FC6A900E4BF71 /* chatListCell.m */; };
203 198 D23696921E7FC83800E4BF71 /* chatMsgModel.m in Sources */ = {isa = PBXBuildFile; fileRef = D23696911E7FC83800E4BF71 /* chatMsgModel.m */; };
204 199 D2393D011F020D5700D3EE17 /* FeedbackViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = D2393D001F020D5700D3EE17 /* FeedbackViewController.m */; };
205   - D23BBDB81EF8D15D002FE0B8 /* LVCMainHeaderCollectionReusableView.m in Sources */ = {isa = PBXBuildFile; fileRef = D23BBDB71EF8D15D002FE0B8 /* LVCMainHeaderCollectionReusableView.m */; };
206   - D23BBDBB1EF8E8B2002FE0B8 /* LVCBannerAndMarqueeModel.m in Sources */ = {isa = PBXBuildFile; fileRef = D23BBDBA1EF8E8B2002FE0B8 /* LVCBannerAndMarqueeModel.m */; };
207   - D23BBDBE1EF8ED4A002FE0B8 /* LVCChannelDetailModel.m in Sources */ = {isa = PBXBuildFile; fileRef = D23BBDBD1EF8ED4A002FE0B8 /* LVCChannelDetailModel.m */; };
208   - D23BBDC11EF8F513002FE0B8 /* LVCBqWqXgModel.m in Sources */ = {isa = PBXBuildFile; fileRef = D23BBDC01EF8F513002FE0B8 /* LVCBqWqXgModel.m */; };
209   - D23BBDC41EF8FB99002FE0B8 /* LVCMainHorizontalCollectionViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = D23BBDC31EF8FB99002FE0B8 /* LVCMainHorizontalCollectionViewCell.m */; };
210   - D23BBDC71EF8FBD1002FE0B8 /* LVCSectionHeaderCollectionReusableView.m in Sources */ = {isa = PBXBuildFile; fileRef = D23BBDC61EF8FBD1002FE0B8 /* LVCSectionHeaderCollectionReusableView.m */; };
211 200 D23DC1551ECC41C100103B0E /* LVCVerifyViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = D23DC1541ECC41C100103B0E /* LVCVerifyViewController.m */; };
212 201 D24571581E8393EB00AA85D6 /* UIImageView+ZXExtension.m in Sources */ = {isa = PBXBuildFile; fileRef = D24571571E8393EB00AA85D6 /* UIImageView+ZXExtension.m */; };
213 202 D245715C1E83A62B00AA85D6 /* BounceView.m in Sources */ = {isa = PBXBuildFile; fileRef = D245715B1E83A62B00AA85D6 /* BounceView.m */; };
214 203 D245715F1E83B09900AA85D6 /* userInfoModel.m in Sources */ = {isa = PBXBuildFile; fileRef = D245715E1E83B09900AA85D6 /* userInfoModel.m */; };
215 204 D24571631E83C40B00AA85D6 /* PrivateView.m in Sources */ = {isa = PBXBuildFile; fileRef = D24571621E83C40B00AA85D6 /* PrivateView.m */; };
216   - D24CFC201EFA092300AA6ADB /* JBBannerView.m in Sources */ = {isa = PBXBuildFile; fileRef = D24CFC1F1EFA092300AA6ADB /* JBBannerView.m */; };
217   - D24F40921EFB727000833738 /* JBAutoRollTableView.m in Sources */ = {isa = PBXBuildFile; fileRef = D24F40911EFB727000833738 /* JBAutoRollTableView.m */; };
218   - D24F40951EFB965A00833738 /* JBSearchView.m in Sources */ = {isa = PBXBuildFile; fileRef = D24F40941EFB965A00833738 /* JBSearchView.m */; };
219 205 D25530001E7909AC00DF38A5 /* GiftAnimOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = D2552FFF1E7909AC00DF38A5 /* GiftAnimOperation.m */; };
220 206 D25530031E79115100DF38A5 /* AnimQueueManager.m in Sources */ = {isa = PBXBuildFile; fileRef = D25530021E79115100DF38A5 /* AnimQueueManager.m */; };
221 207 D25530061E7911A800DF38A5 /* GiftAnimationAction.m in Sources */ = {isa = PBXBuildFile; fileRef = D25530051E7911A800DF38A5 /* GiftAnimationAction.m */; };
... ... @@ -254,7 +240,6 @@
254 240 D2CBC13B1ECC157A00E00279 /* LVCVerifyLiveAuthService.m in Sources */ = {isa = PBXBuildFile; fileRef = D2CBC13A1ECC157A00E00279 /* LVCVerifyLiveAuthService.m */; };
255 241 D2D7D18D1E8A581000217771 /* timg.jpeg in Resources */ = {isa = PBXBuildFile; fileRef = D2D7D18C1E8A581000217771 /* timg.jpeg */; };
256 242 D2EBC8571F01FF9200F198FB /* LVCCommentModel.m in Sources */ = {isa = PBXBuildFile; fileRef = D2EBC8561F01FF9200F198FB /* LVCCommentModel.m */; };
257   - D2EBC8641F02105C00F198FB /* LVCHomePageViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = D2EBC8631F02105C00F198FB /* LVCHomePageViewController.m */; };
258 243 D2EBC8711F02108000F198FB /* LiveListService.m in Sources */ = {isa = PBXBuildFile; fileRef = D2EBC8661F02108000F198FB /* LiveListService.m */; };
259 244 D2EBC8721F02108000F198FB /* LVCLiveActivityInfoService.m in Sources */ = {isa = PBXBuildFile; fileRef = D2EBC8681F02108000F198FB /* LVCLiveActivityInfoService.m */; };
260 245 D2EBC8741F02108000F198FB /* LVCUGCLiveListController.m in Sources */ = {isa = PBXBuildFile; fileRef = D2EBC86C1F02108000F198FB /* LVCUGCLiveListController.m */; };
... ... @@ -487,8 +472,6 @@
487 472 8178D4701F0239AD00AA78A4 /* LVCPlayerLoadingView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LVCPlayerLoadingView.m; sourceTree = "<group>"; };
488 473 81A483061E88B6140097A80A /* UIView+ViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UIView+ViewController.h"; sourceTree = "<group>"; };
489 474 81A483071E88B6140097A80A /* UIView+ViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UIView+ViewController.m"; sourceTree = "<group>"; };
490   - 81F1C8361E8BBDDA0085C2B8 /* MHPagingScrollView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MHPagingScrollView.h; sourceTree = "<group>"; };
491   - 81F1C8371E8BBDDA0085C2B8 /* MHPagingScrollView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MHPagingScrollView.m; sourceTree = "<group>"; };
492 475 81F1C83E1E8BC5CC0085C2B8 /* NSArray+Safety.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSArray+Safety.h"; sourceTree = "<group>"; };
493 476 81F1C83F1E8BC5CC0085C2B8 /* NSArray+Safety.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSArray+Safety.m"; sourceTree = "<group>"; };
494 477 81FB5B3A1E7A6FFC00F98E1D /* SevenSwitch.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SevenSwitch.h; sourceTree = "<group>"; };
... ... @@ -677,13 +660,6 @@
677 660 D209AD6D1EC583B700D82E3B /* MineMessageController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MineMessageController.m; sourceTree = "<group>"; };
678 661 D209AD6F1EC583D100D82E3B /* MineAccountController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MineAccountController.h; sourceTree = "<group>"; };
679 662 D209AD701EC583D100D82E3B /* MineAccountController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MineAccountController.m; sourceTree = "<group>"; };
680   - D20C82BC1EEEA89700BB609F /* LVCHomePageListModel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LVCHomePageListModel.h; sourceTree = "<group>"; };
681   - D20C82BD1EEEA89700BB609F /* LVCHomePageListModel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LVCHomePageListModel.m; sourceTree = "<group>"; };
682   - D214CB4C1EF7BD890014EEBA /* V8HorizontalPickerView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = V8HorizontalPickerView.h; sourceTree = "<group>"; };
683   - D214CB4D1EF7BD890014EEBA /* V8HorizontalPickerView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = V8HorizontalPickerView.m; sourceTree = "<group>"; };
684   - D214CB4E1EF7BD890014EEBA /* V8HorizontalPickerViewProtocol.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = V8HorizontalPickerViewProtocol.h; sourceTree = "<group>"; };
685   - D214CB501EF7CB310014EEBA /* LVCChannelPagingView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LVCChannelPagingView.h; sourceTree = "<group>"; };
686   - D214CB511EF7CB310014EEBA /* LVCChannelPagingView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LVCChannelPagingView.m; sourceTree = "<group>"; };
687 663 D217A2451E7B76C7003B44CB /* PresentModelAble.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PresentModelAble.h; sourceTree = "<group>"; };
688 664 D217A2461E7B76C7003B44CB /* PresentView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PresentView.h; sourceTree = "<group>"; };
689 665 D217A2471E7B76C7003B44CB /* PresentView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PresentView.m; sourceTree = "<group>"; };
... ... @@ -691,8 +667,6 @@
691 667 D217A2491E7B76C7003B44CB /* PresentViewCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PresentViewCell.m; sourceTree = "<group>"; };
692 668 D217A24C1E7B77C7003B44CB /* ComboCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ComboCell.h; path = Present/ComboCell.h; sourceTree = "<group>"; };
693 669 D217A24D1E7B77C7003B44CB /* ComboCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = ComboCell.m; path = Present/ComboCell.m; sourceTree = "<group>"; };
694   - D219E8691EFD04A700650F38 /* LVCBigHorizontalCollectionViewCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LVCBigHorizontalCollectionViewCell.h; sourceTree = "<group>"; };
695   - D219E86A1EFD04A700650F38 /* LVCBigHorizontalCollectionViewCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LVCBigHorizontalCollectionViewCell.m; sourceTree = "<group>"; };
696 670 D224B1951E826ED800CC61D0 /* ChatBarrageAnimAction.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ChatBarrageAnimAction.h; sourceTree = "<group>"; };
697 671 D224B1961E826ED800CC61D0 /* ChatBarrageAnimAction.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ChatBarrageAnimAction.m; sourceTree = "<group>"; };
698 672 D22830EF1E778C0F00627701 /* LiveBaseView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LiveBaseView.h; sourceTree = "<group>"; };
... ... @@ -711,18 +685,6 @@
711 685 D23696911E7FC83800E4BF71 /* chatMsgModel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = chatMsgModel.m; sourceTree = "<group>"; };
712 686 D2393CFF1F020D5700D3EE17 /* FeedbackViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FeedbackViewController.h; sourceTree = "<group>"; };
713 687 D2393D001F020D5700D3EE17 /* FeedbackViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = FeedbackViewController.m; sourceTree = "<group>"; };
714   - D23BBDB61EF8D15D002FE0B8 /* LVCMainHeaderCollectionReusableView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LVCMainHeaderCollectionReusableView.h; sourceTree = "<group>"; };
715   - D23BBDB71EF8D15D002FE0B8 /* LVCMainHeaderCollectionReusableView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LVCMainHeaderCollectionReusableView.m; sourceTree = "<group>"; };
716   - D23BBDB91EF8E8B2002FE0B8 /* LVCBannerAndMarqueeModel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LVCBannerAndMarqueeModel.h; sourceTree = "<group>"; };
717   - D23BBDBA1EF8E8B2002FE0B8 /* LVCBannerAndMarqueeModel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LVCBannerAndMarqueeModel.m; sourceTree = "<group>"; };
718   - D23BBDBC1EF8ED4A002FE0B8 /* LVCChannelDetailModel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LVCChannelDetailModel.h; sourceTree = "<group>"; };
719   - D23BBDBD1EF8ED4A002FE0B8 /* LVCChannelDetailModel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LVCChannelDetailModel.m; sourceTree = "<group>"; };
720   - D23BBDBF1EF8F513002FE0B8 /* LVCBqWqXgModel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LVCBqWqXgModel.h; sourceTree = "<group>"; };
721   - D23BBDC01EF8F513002FE0B8 /* LVCBqWqXgModel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LVCBqWqXgModel.m; sourceTree = "<group>"; };
722   - D23BBDC21EF8FB99002FE0B8 /* LVCMainHorizontalCollectionViewCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LVCMainHorizontalCollectionViewCell.h; sourceTree = "<group>"; };
723   - D23BBDC31EF8FB99002FE0B8 /* LVCMainHorizontalCollectionViewCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LVCMainHorizontalCollectionViewCell.m; sourceTree = "<group>"; };
724   - D23BBDC51EF8FBD1002FE0B8 /* LVCSectionHeaderCollectionReusableView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LVCSectionHeaderCollectionReusableView.h; sourceTree = "<group>"; };
725   - D23BBDC61EF8FBD1002FE0B8 /* LVCSectionHeaderCollectionReusableView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LVCSectionHeaderCollectionReusableView.m; sourceTree = "<group>"; };
726 688 D23DC1531ECC41C100103B0E /* LVCVerifyViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LVCVerifyViewController.h; sourceTree = "<group>"; };
727 689 D23DC1541ECC41C100103B0E /* LVCVerifyViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LVCVerifyViewController.m; sourceTree = "<group>"; };
728 690 D24571561E8393EB00AA85D6 /* UIImageView+ZXExtension.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UIImageView+ZXExtension.h"; sourceTree = "<group>"; };
... ... @@ -733,12 +695,6 @@
733 695 D245715E1E83B09900AA85D6 /* userInfoModel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = userInfoModel.m; sourceTree = "<group>"; };
734 696 D24571611E83C40B00AA85D6 /* PrivateView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PrivateView.h; sourceTree = "<group>"; };
735 697 D24571621E83C40B00AA85D6 /* PrivateView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PrivateView.m; sourceTree = "<group>"; };
736   - D24CFC1E1EFA092300AA6ADB /* JBBannerView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JBBannerView.h; sourceTree = "<group>"; };
737   - D24CFC1F1EFA092300AA6ADB /* JBBannerView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = JBBannerView.m; sourceTree = "<group>"; };
738   - D24F40901EFB727000833738 /* JBAutoRollTableView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JBAutoRollTableView.h; sourceTree = "<group>"; };
739   - D24F40911EFB727000833738 /* JBAutoRollTableView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = JBAutoRollTableView.m; sourceTree = "<group>"; };
740   - D24F40931EFB965A00833738 /* JBSearchView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JBSearchView.h; sourceTree = "<group>"; };
741   - D24F40941EFB965A00833738 /* JBSearchView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = JBSearchView.m; sourceTree = "<group>"; };
742 698 D2552FFE1E7909AC00DF38A5 /* GiftAnimOperation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GiftAnimOperation.h; sourceTree = "<group>"; };
743 699 D2552FFF1E7909AC00DF38A5 /* GiftAnimOperation.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GiftAnimOperation.m; sourceTree = "<group>"; };
744 700 D25530011E79115100DF38A5 /* AnimQueueManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AnimQueueManager.h; sourceTree = "<group>"; };
... ... @@ -803,8 +759,6 @@
803 759 D2D7D18C1E8A581000217771 /* timg.jpeg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = timg.jpeg; sourceTree = "<group>"; };
804 760 D2EBC8551F01FF9200F198FB /* LVCCommentModel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LVCCommentModel.h; sourceTree = "<group>"; };
805 761 D2EBC8561F01FF9200F198FB /* LVCCommentModel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LVCCommentModel.m; sourceTree = "<group>"; };
806   - D2EBC8621F02105C00F198FB /* LVCHomePageViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LVCHomePageViewController.h; sourceTree = "<group>"; };
807   - D2EBC8631F02105C00F198FB /* LVCHomePageViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LVCHomePageViewController.m; sourceTree = "<group>"; };
808 762 D2EBC8651F02108000F198FB /* LiveListService.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LiveListService.h; sourceTree = "<group>"; };
809 763 D2EBC8661F02108000F198FB /* LiveListService.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LiveListService.m; sourceTree = "<group>"; };
810 764 D2EBC8671F02108000F198FB /* LVCLiveActivityInfoService.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LVCLiveActivityInfoService.h; sourceTree = "<group>"; };
... ... @@ -1197,15 +1151,6 @@
1197 1151 path = Model;
1198 1152 sourceTree = "<group>";
1199 1153 };
1200   - 81F1C8351E8BBDDA0085C2B8 /* MHPagingScrollView */ = {
1201   - isa = PBXGroup;
1202   - children = (
1203   - 81F1C8361E8BBDDA0085C2B8 /* MHPagingScrollView.h */,
1204   - 81F1C8371E8BBDDA0085C2B8 /* MHPagingScrollView.m */,
1205   - );
1206   - path = MHPagingScrollView;
1207   - sourceTree = "<group>";
1208   - };
1209 1154 81FB5B391E7A6FFC00F98E1D /* SevenSwitch */ = {
1210 1155 isa = PBXGroup;
1211 1156 children = (
... ... @@ -1339,9 +1284,7 @@
1339 1284 D2029BD41E6EADE10027CD92 /* SDK */ = {
1340 1285 isa = PBXGroup;
1341 1286 children = (
1342   - D214CB4B1EF7BD890014EEBA /* V8HorizontalPickerView */,
1343 1287 4BD855D41EBACD530082061D /* AFNetworking */,
1344   - 81F1C8351E8BBDDA0085C2B8 /* MHPagingScrollView */,
1345 1288 81FB5B391E7A6FFC00F98E1D /* SevenSwitch */,
1346 1289 810B64E41E779B1F00133E15 /* Masonry */,
1347 1290 D2029BF81E6EADE10027CD92 /* MBProgressHUD */,
... ... @@ -1580,7 +1523,6 @@
1580 1523 D2888D951E6EBAA7003A77C8 /* LiveSections */,
1581 1524 D2575C431E76846900E3A8FC /* InteractionSections */,
1582 1525 D2029C751E6EADE10027CD92 /* ZXSections(例子) */,
1583   - D233EE731EEA8A1500674ED5 /* HomePageSections */,
1584 1526 );
1585 1527 path = Sections;
1586 1528 sourceTree = "<group>";
... ... @@ -1774,54 +1716,6 @@
1774 1716 name = Model;
1775 1717 sourceTree = "<group>";
1776 1718 };
1777   - D20C82BF1EEEA89E00BB609F /* Model */ = {
1778   - isa = PBXGroup;
1779   - children = (
1780   - D20C82BC1EEEA89700BB609F /* LVCHomePageListModel.h */,
1781   - D20C82BD1EEEA89700BB609F /* LVCHomePageListModel.m */,
1782   - D23BBDB91EF8E8B2002FE0B8 /* LVCBannerAndMarqueeModel.h */,
1783   - D23BBDBA1EF8E8B2002FE0B8 /* LVCBannerAndMarqueeModel.m */,
1784   - D23BBDBC1EF8ED4A002FE0B8 /* LVCChannelDetailModel.h */,
1785   - D23BBDBD1EF8ED4A002FE0B8 /* LVCChannelDetailModel.m */,
1786   - D23BBDBF1EF8F513002FE0B8 /* LVCBqWqXgModel.h */,
1787   - D23BBDC01EF8F513002FE0B8 /* LVCBqWqXgModel.m */,
1788   - );
1789   - name = Model;
1790   - sourceTree = "<group>";
1791   - };
1792   - D214CB4B1EF7BD890014EEBA /* V8HorizontalPickerView */ = {
1793   - isa = PBXGroup;
1794   - children = (
1795   - D214CB4C1EF7BD890014EEBA /* V8HorizontalPickerView.h */,
1796   - D214CB4D1EF7BD890014EEBA /* V8HorizontalPickerView.m */,
1797   - D214CB4E1EF7BD890014EEBA /* V8HorizontalPickerViewProtocol.h */,
1798   - );
1799   - path = V8HorizontalPickerView;
1800   - sourceTree = "<group>";
1801   - };
1802   - D214CB531EF7CB380014EEBA /* View */ = {
1803   - isa = PBXGroup;
1804   - children = (
1805   - D214CB501EF7CB310014EEBA /* LVCChannelPagingView.h */,
1806   - D214CB511EF7CB310014EEBA /* LVCChannelPagingView.m */,
1807   - D23BBDB61EF8D15D002FE0B8 /* LVCMainHeaderCollectionReusableView.h */,
1808   - D23BBDB71EF8D15D002FE0B8 /* LVCMainHeaderCollectionReusableView.m */,
1809   - D23BBDC51EF8FBD1002FE0B8 /* LVCSectionHeaderCollectionReusableView.h */,
1810   - D23BBDC61EF8FBD1002FE0B8 /* LVCSectionHeaderCollectionReusableView.m */,
1811   - D23BBDC21EF8FB99002FE0B8 /* LVCMainHorizontalCollectionViewCell.h */,
1812   - D23BBDC31EF8FB99002FE0B8 /* LVCMainHorizontalCollectionViewCell.m */,
1813   - D219E8691EFD04A700650F38 /* LVCBigHorizontalCollectionViewCell.h */,
1814   - D219E86A1EFD04A700650F38 /* LVCBigHorizontalCollectionViewCell.m */,
1815   - D24F40931EFB965A00833738 /* JBSearchView.h */,
1816   - D24F40941EFB965A00833738 /* JBSearchView.m */,
1817   - D24CFC1E1EFA092300AA6ADB /* JBBannerView.h */,
1818   - D24CFC1F1EFA092300AA6ADB /* JBBannerView.m */,
1819   - D24F40901EFB727000833738 /* JBAutoRollTableView.h */,
1820   - D24F40911EFB727000833738 /* JBAutoRollTableView.m */,
1821   - );
1822   - name = View;
1823   - sourceTree = "<group>";
1824   - };
1825 1719 D217A2441E7B76C7003B44CB /* Present */ = {
1826 1720 isa = PBXGroup;
1827 1721 children = (
... ... @@ -1891,25 +1785,6 @@
1891 1785 path = GiftModel;
1892 1786 sourceTree = "<group>";
1893 1787 };
1894   - D233EE731EEA8A1500674ED5 /* HomePageSections */ = {
1895   - isa = PBXGroup;
1896   - children = (
1897   - D233EE741EEE26C700674ED5 /* Controller */,
1898   - D20C82BF1EEEA89E00BB609F /* Model */,
1899   - D214CB531EF7CB380014EEBA /* View */,
1900   - );
1901   - path = HomePageSections;
1902   - sourceTree = "<group>";
1903   - };
1904   - D233EE741EEE26C700674ED5 /* Controller */ = {
1905   - isa = PBXGroup;
1906   - children = (
1907   - D2EBC8621F02105C00F198FB /* LVCHomePageViewController.h */,
1908   - D2EBC8631F02105C00F198FB /* LVCHomePageViewController.m */,
1909   - );
1910   - name = Controller;
1911   - sourceTree = "<group>";
1912   - };
1913 1788 D236968F1E7FC83800E4BF71 /* ChatMsgModel */ = {
1914 1789 isa = PBXGroup;
1915 1790 children = (
... ... @@ -2366,7 +2241,6 @@
2366 2241 D2029CC01E6EADE10027CD92 /* UIImage+GIF.m in Sources */,
2367 2242 4B45CE851EB86A590079AFB7 /* LVCClearCachesCell.m in Sources */,
2368 2243 4B45CE9B1EB86A760079AFB7 /* ZXUIKit.m in Sources */,
2369   - D214CB4F1EF7BD890014EEBA /* V8HorizontalPickerView.m in Sources */,
2370 2244 D2029BCF1E6EADD70027CD92 /* ZXTabBarController.m in Sources */,
2371 2245 D2029CB81E6EADE10027CD92 /* SDImageCache.m in Sources */,
2372 2246 D2029CBB1E6EADE10027CD92 /* SDWebImageDownloader.m in Sources */,
... ... @@ -2376,7 +2250,6 @@
2376 2250 8178D4241F02043500AA78A4 /* LVCFullScreenPlayerController.m in Sources */,
2377 2251 D2029C861E6EADE10027CD92 /* Tools.m in Sources */,
2378 2252 4B42A6C41EC00CC800DA09D7 /* UIAlertView+Blocks.m in Sources */,
2379   - D214CB521EF7CB310014EEBA /* LVCChannelPagingView.m in Sources */,
2380 2253 4B45CE861EB86A590079AFB7 /* LVCLoginShowView.m in Sources */,
2381 2254 D2029CA01E6EADE10027CD92 /* NSObject+MJProperty.m in Sources */,
2382 2255 4BD855FE1EBACD530082061D /* AFSecurityPolicy.m in Sources */,
... ... @@ -2384,7 +2257,6 @@
2384 2257 4B45CE981EB86A760079AFB7 /* UILabel+createLabel.m in Sources */,
2385 2258 D2029C9C1E6EADE10027CD92 /* MJPropertyType.m in Sources */,
2386 2259 D22831091E77D8D500627701 /* GiftModel.m in Sources */,
2387   - D23BBDBE1EF8ED4A002FE0B8 /* LVCChannelDetailModel.m in Sources */,
2388 2260 D2029CCD1E6EADE10027CD92 /* SearchModel.m in Sources */,
2389 2261 4BD8560F1EBACEF80082061D /* CNLiveWebView.m in Sources */,
2390 2262 810B65051E779B1F00133E15 /* NSLayoutConstraint+MASDebugAdditions.m in Sources */,
... ... @@ -2396,7 +2268,6 @@
2396 2268 81F1C8401E8BC5CC0085C2B8 /* NSArray+Safety.m in Sources */,
2397 2269 D2029D011E6EAE2E0027CD92 /* UIColor+HexString.m in Sources */,
2398 2270 4B45CE7D1EB86A590079AFB7 /* ModifyInfomationController.m in Sources */,
2399   - D23BBDBB1EF8E8B2002FE0B8 /* LVCBannerAndMarqueeModel.m in Sources */,
2400 2271 D2029CA41E6EADE10027CD92 /* MJRefreshComponent.m in Sources */,
2401 2272 D2575C7A1E76A4F300E3A8FC /* NHCarViews.m in Sources */,
2402 2273 8178D44A1F02045500AA78A4 /* CNBarrageManager.m in Sources */,
... ... @@ -2413,7 +2284,6 @@
2413 2284 4BD8561D1EBAD6490082061D /* ZXConst.m in Sources */,
2414 2285 D2029CB71E6EADE10027CD92 /* NSData+ImageContentType.m in Sources */,
2415 2286 D23DC1551ECC41C100103B0E /* LVCVerifyViewController.m in Sources */,
2416   - D2EBC8641F02105C00F198FB /* LVCHomePageViewController.m in Sources */,
2417 2287 D29E81ED1E88DC5B008C9906 /* PriChatCell.m in Sources */,
2418 2288 D2029CD01E6EADE10027CD92 /* SearchPresenter.m in Sources */,
2419 2289 D2029CBE1E6EADE10027CD92 /* SDWebImagePrefetcher.m in Sources */,
... ... @@ -2424,9 +2294,7 @@
2424 2294 D2029CCE1E6EADE10027CD92 /* SearchRecomListModel.m in Sources */,
2425 2295 D2029CA11E6EADE10027CD92 /* NSString+MJExtension.m in Sources */,
2426 2296 4B45CE7A1EB86A590079AFB7 /* MineLiveController.m in Sources */,
2427   - D24F40951EFB965A00833738 /* JBSearchView.m in Sources */,
2428 2297 D2029BCB1E6EADD70027CD92 /* BaseTableViewCell.m in Sources */,
2429   - 81F1C8381E8BBDDA0085C2B8 /* MHPagingScrollView.m in Sources */,
2430 2298 D2029CAA1E6EADE10027CD92 /* MJRefreshBackGifFooter.m in Sources */,
2431 2299 8178D4531F02045500AA78A4 /* LVCRequestFailedView.m in Sources */,
2432 2300 4BD855FB1EBACD530082061D /* AFHTTPRequestOperationManager.m in Sources */,
... ... @@ -2441,7 +2309,6 @@
2441 2309 4B45CEA61EB86B9F0079AFB7 /* NSNumber+ScaleHeight.m in Sources */,
2442 2310 810B65031E779B1F00133E15 /* MASViewConstraint.m in Sources */,
2443 2311 D2029BCE1E6EADD70027CD92 /* ZXNavigationController.m in Sources */,
2444   - D23BBDC71EF8FBD1002FE0B8 /* LVCSectionHeaderCollectionReusableView.m in Sources */,
2445 2312 D2029CA21E6EADE10027CD92 /* MJRefreshAutoFooter.m in Sources */,
2446 2313 D2029CC71E6EADE10027CD92 /* SVIndefiniteAnimatedView.m in Sources */,
2447 2314 D2029CA31E6EADE10027CD92 /* MJRefreshBackFooter.m in Sources */,
... ... @@ -2451,16 +2318,13 @@
2451 2318 4BD856011EBACD530082061D /* AFURLResponseSerialization.m in Sources */,
2452 2319 D2575C4A1E7685DE00E3A8FC /* UIView+Bubbling.m in Sources */,
2453 2320 D2EBC8571F01FF9200F198FB /* LVCCommentModel.m in Sources */,
2454   - D23BBDB81EF8D15D002FE0B8 /* LVCMainHeaderCollectionReusableView.m in Sources */,
2455 2321 D2EBC88B1F02361600F198FB /* LVCUGCLiveListView.m in Sources */,
2456 2322 D2029CA61E6EADE10027CD92 /* MJRefreshHeader.m in Sources */,
2457 2323 D2029CC41E6EADE10027CD92 /* UIImageView+WebCache.m in Sources */,
2458 2324 4B45CE801EB86A590079AFB7 /* idAndPwdView.m in Sources */,
2459   - D23BBDC41EF8FB99002FE0B8 /* LVCMainHorizontalCollectionViewCell.m in Sources */,
2460 2325 8178D4251F02043500AA78A4 /* LVCLivePlayerController.m in Sources */,
2461 2326 D236967E1E7F9E4100E4BF71 /* GiftPayButton.m in Sources */,
2462 2327 4BD8560A1EBACD530082061D /* UIWebView+AFNetworking.m in Sources */,
2463   - D219E86B1EFD04A700650F38 /* LVCBigHorizontalCollectionViewCell.m in Sources */,
2464 2328 D2EBC8881F0225D900F198FB /* LVCVodPlayerListController.m in Sources */,
2465 2329 4B45CE831EB86A590079AFB7 /* LVCMineModel.m in Sources */,
2466 2330 4B45CE791EB86A590079AFB7 /* MineAboutUsController.m in Sources */,
... ... @@ -2469,7 +2333,6 @@
2469 2333 D2029CC81E6EADE10027CD92 /* SVProgressAnimatedView.m in Sources */,
2470 2334 4B45CE891EB86A590079AFB7 /* LVCPersonalImageCell.m in Sources */,
2471 2335 D2029C961E6EADE10027CD92 /* MBProgressHUD.m in Sources */,
2472   - D24F40921EFB727000833738 /* JBAutoRollTableView.m in Sources */,
2473 2336 810B65071E779B1F00133E15 /* ViewController+MASAdditions.m in Sources */,
2474 2337 D2EBC88E1F023AA400F198FB /* LVCVodPlayerController.m in Sources */,
2475 2338 D2029C9A1E6EADE10027CD92 /* MJProperty.m in Sources */,
... ... @@ -2567,10 +2430,8 @@
2567 2430 4BD856041EBACD530082061D /* UIActivityIndicatorView+AFNetworking.m in Sources */,
2568 2431 4B45CE781EB86A590079AFB7 /* LVCMineViewController.m in Sources */,
2569 2432 D2888D9E1E6EBF1B003A77C8 /* LVCLiveViewController.m in Sources */,
2570   - D20C82BE1EEEA89700BB609F /* LVCHomePageListModel.m in Sources */,
2571 2433 4B42A6C71EC0171800DA09D7 /* PlayRecordCell.m in Sources */,
2572 2434 D217A24E1E7B77C7003B44CB /* ComboCell.m in Sources */,
2573   - D24CFC201EFA092300AA6ADB /* JBBannerView.m in Sources */,
2574 2435 D2029CBD1E6EADE10027CD92 /* SDWebImageManager.m in Sources */,
2575 2436 D2029CB41E6EADE10027CD92 /* UIView+MJExtension.m in Sources */,
2576 2437 81FB5B3C1E7A6FFC00F98E1D /* SevenSwitch.m in Sources */,
... ... @@ -2580,7 +2441,6 @@
2580 2441 D2029D061E6EAE2E0027CD92 /* UIView+Extension.m in Sources */,
2581 2442 D25530001E7909AC00DF38A5 /* GiftAnimOperation.m in Sources */,
2582 2443 D2029C9D1E6EADE10027CD92 /* NSObject+MJClass.m in Sources */,
2583   - D23BBDC11EF8F513002FE0B8 /* LVCBqWqXgModel.m in Sources */,
2584 2444 D2029CCF1E6EADE10027CD92 /* SearchHttp.m in Sources */,
2585 2445 810B65001E779B1F00133E15 /* MASConstraintMaker.m in Sources */,
2586 2446 8178D4711F0239AD00AA78A4 /* LVCPlayerLoadingView.m in Sources */,
... ...
LiveVideoCloud/AppDelegate/AppDelegate.m
... ... @@ -23,10 +23,10 @@
23 23 self.window.rootViewController = [[ZXTabBarController alloc] init];
24 24  
25 25 //初始化直播SDK
26   - [[CNLiveWebcastManager manager] initWithAppId:UserAppId appKey:UserAppKey];
  26 + [[CNLiveWebcastManager manager] initWithAppId:UserAppId appKey:UserAppKey isTestEnvironment:YES];
27 27  
28 28 //初始化聊天SDK并连接服务器
29   - [[CNLiveChatManager sharedCNLiveChatManager] initWithAppKey:UserAppKey appId:UserAppId];
  29 + [[CNLiveChatManager sharedCNLiveChatManager] initWithAppKey:UserAppKey appId:UserAppId ];
30 30  
31 31 [CNLiveUserSystemCenter setAppId:UserAppId appKey:UserAppKey appSecret:UserAppSceret];
32 32  
... ...
LiveVideoCloud/Classes/SDK/MHPagingScrollView/MHPagingScrollView.h deleted 100755 → 0
1   -
2   -#import <Foundation/Foundation.h>
3   -#import <UIKit/UIKit.h>
4   -@class MHPagingScrollView;
5   -
6   -/*
7   - * Delegate protocol for MHPagingScrollView.
8   - */
9   -@protocol MHPagingScrollViewDelegate <NSObject>
10   -
11   -/*
12   - * Asks the delegate to return the number of pages.
13   - */
14   -- (NSUInteger)numberOfPagesInPagingScrollView:(MHPagingScrollView *)pagingScrollView;
15   -
16   -/*
17   - * Asks the delegate for a page to insert. The delegate should ask for a
18   - * reusable view using dequeueReusablePageView.
19   - */
20   -- (UIView *)pagingScrollView:(MHPagingScrollView *)pagingScrollView pageForIndex:(NSUInteger)index;
21   -
22   -@end
23   -
24   -/*
25   - * A paging scroll view that employs a reusable page mechanism like UITableView.
26   - *
27   - * MHPagingScrollView allows you to show partial previews of the pages to the
28   - * left and right of the current page. The bounds of the scroll view always
29   - * correspond to a single page. To allow these previews, make the scroll view
30   - * smaller to make room for the preview pages and set the previewInsets
31   - * property.
32   - */
33   -@interface MHPagingScrollView : UIScrollView
34   -
35   -/* The delegate for paging events. */
36   -@property (nonatomic, weak) id <MHPagingScrollViewDelegate> pagingDelegate;
37   -
38   -/* The width of the preview pages. */
39   -@property (nonatomic, assign) UIEdgeInsets previewInsets;
40   -
41   -/* set prepare, default is 0 */
42   -@property (nonatomic, assign) NSUInteger rightPrepareCount;
43   -@property (nonatomic, assign) NSUInteger leftPrepareCount;
44   -
45   -//- (void)refreshPage;
46   -
47   -/*
48   - * Makes the page at the requested index visible.
49   - */
50   -- (void)selectPageAtIndex:(NSUInteger)index animated:(BOOL)animated;
51   -
52   -/*
53   - * Returns the index of the page that is currently visible.
54   - */
55   -- (NSUInteger)indexOfSelectedPage;
56   -
57   -/*
58   - * Returns a reusable UIView object.
59   - */
60   -- (UIView *)dequeueReusablePage;
61   -
62   -- (UIView *)dequeueReusablePageWithIdentify:(NSString *)identify;
63   -
64   -/*
65   - * Reloads the pages. Call this method when the number of pages has changed.
66   - */
67   -- (void)reloadPages;
68   -
69   -/*
70   - * Call this from your view controller's UIScrollViewDelegate.
71   - */
72   -- (void)scrollViewDidScroll;
73   -
74   -/*
75   - * Call this from your view controller's willRotateToInterfaceOrientation if
76   - * you want to support autorotation.
77   - */
78   -- (void)beforeRotation;
79   -
80   -/*
81   - * Call this from your view controller's willAnimateRotationToInterfaceOrientation
82   - * if you want to support autorotation.
83   - */
84   -- (void)afterRotation;
85   -
86   -/*
87   - * Call this from your view controller's didReceiveMemoryWarning.
88   - */
89   -- (void)didReceiveMemoryWarning;
90   -
91   -@end
92   -
93   -@interface MHPagingScrollView (UNREUSE)
94   -
95   -/*
96   - * Returns a UIView object by index.
97   - */
98   -- (UIView *)pageViewByIndex:(NSInteger)index;
99   -
100   -/*
101   - * Returns the select UIView object .
102   - */
103   -- (UIView *)selectPageView;
104   -
105   -- (BOOL)isLoadedPageByIndex:(NSInteger)index;
106   -
107   -- (void)preLoadedPageView:(UIView*)view index:(NSInteger)index;
108   -
109   -@end
LiveVideoCloud/Classes/SDK/MHPagingScrollView/MHPagingScrollView.m deleted 100755 → 0
1   -
2   -#import "MHPagingScrollView.h"
3   -
4   -@interface MHPage : NSObject
5   -
6   -@property (nonatomic, strong) UIView *view;
7   -@property (nonatomic, assign) NSUInteger index;
8   -
9   -@end
10   -
11   -@implementation MHPage
12   -
13   -@end
14   -
15   -@implementation MHPagingScrollView
16   -{
17   - NSMutableSet *_recycledPages;
18   - NSMutableSet *_visiblePages;
19   - NSUInteger _firstVisiblePageIndexBeforeRotation; // for autorotation
20   - CGFloat _percentScrolledIntoFirstVisiblePage;
21   -}
22   -
23   -- (void)commonInit
24   -{
25   - _recycledPages = [[NSMutableSet alloc] init];
26   - _visiblePages = [[NSMutableSet alloc] init];
27   -
28   - self.pagingEnabled = YES;
29   - self.showsVerticalScrollIndicator = NO;
30   - self.showsHorizontalScrollIndicator = NO;
31   - self.contentOffset = CGPointZero;
32   -}
33   -
34   -- (id)initWithFrame:(CGRect)frame
35   -{
36   - if ((self = [super initWithFrame:frame]))
37   - {
38   - [self commonInit];
39   - }
40   - return self;
41   -}
42   -
43   -- (id)initWithCoder:(NSCoder *)aDecoder
44   -{
45   - if ((self = [super initWithCoder:aDecoder]))
46   - {
47   - [self commonInit];
48   - }
49   - return self;
50   -}
51   -
52   -- (BOOL)pointInside:(CGPoint)point withEvent:(UIEvent *)event
53   -{
54   - // This allows for touch handling outside of the scroll view's bounds.
55   -
56   - CGPoint parentLocation = [self convertPoint:point toView:self.superview];
57   -
58   - CGRect responseRect = self.frame;
59   - responseRect.origin.x -= _previewInsets.left;
60   - responseRect.origin.y -= _previewInsets.top;
61   - responseRect.size.width += (_previewInsets.left + _previewInsets.right);
62   - responseRect.size.height += (_previewInsets.top + _previewInsets.bottom);
63   -
64   - return CGRectContainsPoint(responseRect, parentLocation);
65   -}
66   -
67   -- (void)selectPageAtIndex:(NSUInteger)index animated:(BOOL)animated
68   -{
69   - if (animated) {
70   -
71   - [UIView beginAnimations:nil context:NULL];
72   - [UIView setAnimationDuration:0.3f];
73   - [UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
74   - }
75   -
76   - self.contentOffset = CGPointMake(self.bounds.size.width * index, 0);
77   - if (animated) {
78   -
79   - [UIView commitAnimations];
80   - }
81   -}
82   -
83   -- (NSUInteger)indexOfSelectedPage
84   -{
85   - CGFloat width = self.bounds.size.width;
86   - int currentPage = (self.contentOffset.x + width/2.0f) / width;
87   - return currentPage;
88   -}
89   -
90   -- (NSUInteger)numberOfPages
91   -{
92   - return [_pagingDelegate numberOfPagesInPagingScrollView:self];
93   -}
94   -
95   -- (CGSize)contentSizeForPagingScrollView
96   -{
97   - CGRect rect = self.bounds;
98   - return CGSizeMake(rect.size.width * [self numberOfPages], rect.size.height);
99   -}
100   -
101   -- (BOOL)isDisplayingPageForIndex:(NSUInteger)index
102   -{
103   - for (MHPage *page in _visiblePages)
104   - {
105   - if (page.index == index)
106   - return YES;
107   - }
108   - return NO;
109   -}
110   -
111   -- (UIView *)dequeueReusablePage
112   -{
113   - MHPage *page = [_recycledPages anyObject];
114   - if (page != nil)
115   - {
116   - UIView *view = page.view;
117   - [_recycledPages removeObject:page];
118   - return view;
119   - }
120   - return nil;
121   -}
122   -
123   -- (UIView *)dequeueReusablePageWithIdentify:(NSString *)identify
124   -{
125   - for (MHPage *page in _recycledPages) {
126   - if (page != nil) {
127   - if ([[NSString stringWithFormat:@"%ld", (long)page.view.tag] isEqualToString:identify]) {
128   - UIView *view = page.view;
129   - [_recycledPages removeObject:page];
130   - return view;
131   - }
132   - }
133   - }
134   - return nil;
135   -}
136   -
137   -- (CGRect)frameForPageAtIndex:(NSUInteger)index
138   -{
139   - CGRect rect = self.bounds;
140   - rect.origin.x = rect.size.width * index;
141   - return rect;
142   -}
143   -
144   -- (void)tilePages
145   -{
146   - CGRect visibleBounds = self.bounds;
147   - CGFloat pageWidth = CGRectGetWidth(visibleBounds);
148   - visibleBounds.origin.x -= _previewInsets.left;
149   - visibleBounds.size.width += (_previewInsets.left + _previewInsets.right);
150   -
151   - int firstNeededPageIndex = floorf(CGRectGetMinX(visibleBounds) / pageWidth)-self.leftPrepareCount;
152   - int lastNeededPageIndex = floorf((CGRectGetMaxX(visibleBounds) - 1.0f) / pageWidth)+self.rightPrepareCount;
153   - firstNeededPageIndex = MAX(firstNeededPageIndex, 0);
154   - lastNeededPageIndex = MIN(lastNeededPageIndex, (int)[self numberOfPages] - 1);
155   -
156   - for (MHPage *page in _visiblePages)
157   - {
158   - if ((int)page.index < firstNeededPageIndex || (int)page.index > lastNeededPageIndex)
159   - {
160   - [_recycledPages addObject:page];
161   - [page.view removeFromSuperview];
162   - }
163   - }
164   -
165   - [_visiblePages minusSet:_recycledPages];
166   - for (UIView *view in _recycledPages) {
167   - if ([view isKindOfClass:[UIScrollView class]]) {
168   - UIScrollView *scroll = (UIScrollView *)view;
169   - scroll.scrollsToTop = NO;
170   - }
171   - }
172   -
173   - for (int i = firstNeededPageIndex; i <= lastNeededPageIndex; ++i)
174   - {
175   - if (![self isDisplayingPageForIndex:i])
176   - {
177   - UIView *pageView = [_pagingDelegate pagingScrollView:self pageForIndex:i];
178   - if ([pageView isKindOfClass:[UIScrollView class]]) {
179   - UIScrollView *scroll = (UIScrollView *)pageView;
180   - scroll.scrollsToTop = YES;
181   - }
182   - pageView.frame = [self frameForPageAtIndex:i];
183   - pageView.autoresizingMask = UIViewAutoresizingFlexibleHeight;
184   - [self addSubview:pageView];
185   -
186   - MHPage *page = [[MHPage alloc] init];
187   - page.index = i;
188   - page.view = pageView;
189   - [_visiblePages addObject:page];
190   - }
191   - }
192   -}
193   -
194   -- (void)reloadPages
195   -{
196   - self.contentSize = [self contentSizeForPagingScrollView];
197   - for (MHPage *page in _visiblePages) {
198   - [page.view removeFromSuperview];
199   - }
200   - for (MHPage *page in _recycledPages) {
201   - [page.view removeFromSuperview];
202   - }
203   - [_visiblePages removeAllObjects];
204   - [_recycledPages removeAllObjects];
205   - [self tilePages];
206   -}
207   -
208   -- (void)scrollViewDidScroll
209   -{
210   - [self tilePages];
211   -}
212   -
213   -- (void)beforeRotation
214   -{
215   - CGFloat offset = self.contentOffset.x;
216   - CGFloat pageWidth = self.bounds.size.width;
217   -
218   - if (offset >= 0)
219   - _firstVisiblePageIndexBeforeRotation = floorf(offset / pageWidth);
220   - else
221   - _firstVisiblePageIndexBeforeRotation = 0;
222   -
223   - _percentScrolledIntoFirstVisiblePage = offset / pageWidth - _firstVisiblePageIndexBeforeRotation;
224   -}
225   -
226   -- (void)afterRotation
227   -{
228   - self.contentSize = [self contentSizeForPagingScrollView];
229   -
230   - for (MHPage *page in _visiblePages)
231   - page.view.frame = [self frameForPageAtIndex:page.index];
232   -
233   - CGFloat pageWidth = self.bounds.size.width;
234   - CGFloat newOffset = (_firstVisiblePageIndexBeforeRotation + _percentScrolledIntoFirstVisiblePage) * pageWidth;
235   - self.contentOffset = CGPointMake(newOffset, 0);
236   -}
237   -
238   -- (void)didReceiveMemoryWarning
239   -{
240   - [_recycledPages removeAllObjects];
241   -}
242   -
243   -@end
244   -
245   -@implementation MHPagingScrollView (UNREUSE)
246   -
247   -- (UIView *)pageViewByIndex:(NSInteger)index{
248   - for (MHPage* page in _recycledPages) {
249   - if (page.index == index) {
250   - UIView *view = page.view;
251   - [_recycledPages removeObject:page];
252   - return view;
253   - }
254   - }
255   - for (MHPage *page in _visiblePages) {
256   - if (page.index == index) {
257   - UIView *view = page.view;
258   - return view;
259   - }
260   - }
261   - return nil;
262   -}
263   -
264   -- (UIView *)selectPageView{
265   - NSUInteger index = [self indexOfSelectedPage];
266   - for (MHPage *page in _visiblePages) {
267   - if (page.index == index) {
268   - UIView *view = page.view;
269   - return view;
270   - }
271   - }
272   - return nil;
273   -}
274   -
275   -- (BOOL)isLoadedPageByIndex:(NSInteger)index{
276   -
277   - for (MHPage* page in _recycledPages) {
278   - if (page.index == index) {
279   - return true;
280   - }
281   - }
282   - for (MHPage *page in _visiblePages) {
283   - if (page.index == index) {
284   - return true;
285   - }
286   - }
287   - return false;
288   -
289   -}
290   -
291   -- (void)preLoadedPageView:(UIView*)view index:(NSInteger)index{
292   -
293   - MHPage *page = [[MHPage alloc] init];
294   - page.index = index;
295   - page.view = view;
296   - [_recycledPages addObject:page];
297   -
298   -}
299   -
300   -- (void)refreshPage
301   -{
302   - [_pagingDelegate pagingScrollView:self pageForIndex:0];
303   -}
304   -
305   -@end
306 0 \ No newline at end of file
LiveVideoCloud/Classes/SDK/V8HorizontalPickerView/V8HorizontalPickerView.h deleted 100755 → 0
1   -//
2   -// V8HorizontalPickerView.h
3   -//
4   -// Created by Shawn Veader on 9/17/10.
5   -// Copyright 2010 V8 Labs, LLC. All rights reserved.
6   -//
7   -
8   -#import <UIKit/UIKit.h>
9   -#import "V8HorizontalPickerViewProtocol.h"
10   -
11   -@interface V8HorizontalPickerView : UIView <UIScrollViewDelegate> { }
12   -
13   -// delegate and datasources to feed scroll view. this view only maintains a weak reference to these
14   -@property (nonatomic, assign) id <V8HorizontalPickerViewDataSource> dataSource;
15   -@property (nonatomic, assign) id <V8HorizontalPickerViewDelegate> delegate;
16   -
17   -@property (nonatomic, readonly) NSInteger numberOfElements;
18   -@property (nonatomic, readonly) NSInteger currentSelectedIndex;
19   -
20   -// what font to use for the element labels?
21   -@property (nonatomic, retain) UIFont *elementFont;
22   -
23   -// color of labels used in picker
24   -@property (nonatomic, retain) UIColor *textColor;
25   -@property (nonatomic, retain) UIColor *selectedTextColor; // color of current selected element
26   -
27   -// select bg image
28   -@property (nonatomic, retain) UIImage *currentBgImage;
29   -@property (nonatomic, retain) NSString *isChatRoom;
30   -
31   -// views to display on edges of picker (eg: gradients, etc)
32   -@property (nonatomic, retain) UIView *leftEdgeView;
33   -@property (nonatomic, retain) UIView *rightEdgeView;
34   -
35   -// views for left and right of scrolling area
36   -@property (nonatomic, retain) UIView *leftScrollEdgeView;
37   -@property (nonatomic, retain) UIView *rightScrollEdgeView;
38   -
39   -// padding for left/right scroll edge views
40   -@property (nonatomic, assign) CGFloat scrollEdgeViewPadding;
41   -
42   -@property (nonatomic, assign) NSInteger elementPadding;
43   -@property (nonatomic, retain) UIScrollView *scrollView;
44   -@property (nonatomic, retain) NSMutableArray *elementWidths;
45   -
46   -@property (nonatomic, assign) BOOL clickElementEnable;
47   -
48   -@property (nonatomic, assign) BOOL plugins;
49   -@property (nonatomic, assign) BOOL myVideos;
50   -@property (nonatomic, assign) BOOL home;
51   -
52   -- (id)initWithFrame:(CGRect)frame plugins:(BOOL)plugins myVideos:(BOOL)myVideos;
53   -- (id)initWithFrame:(CGRect)frame home:(BOOL)home;
54   -
55   -- (void)reloadData;
56   -- (void)scrollToElement:(NSInteger)index animated:(BOOL)animate;
57   -@end
58   -
59   -// sub-class of UILabel that knows how to change it's state
60   -@interface V8HorizontalPickerLabel : UILabel <V8HorizontalPickerElementState> { }
61   -
62   -@property (nonatomic, assign) BOOL selectedElement;
63   -@property (nonatomic, retain) UIColor *selectedStateColor;
64   -@property (nonatomic, retain) UIColor *normalStateColor;
65   -
66   -@end
LiveVideoCloud/Classes/SDK/V8HorizontalPickerView/V8HorizontalPickerView.m deleted 100755 → 0
1   -//
2   -// V8HorizontalPickerView.m
3   -//
4   -// Created by Shawn Veader on 9/17/10.
5   -// Copyright 2010 V8 Labs, LLC. All rights reserved.
6   -//
7   -
8   -#import "V8HorizontalPickerView.h"
9   -
10   -#define CurrentBgTag 9999
11   -
12   -#pragma mark - Internal Method Interface
13   -@interface V8HorizontalPickerView () {
14   - UIScrollView *_scrollView;
15   - UIView *_currentBg;
16   -
17   - // collection of widths of each element.
18   - NSMutableArray *_elementWidths;
19   -
20   - // state keepers
21   - BOOL dataHasBeenLoaded;
22   - BOOL scrollSizeHasBeenSet;
23   -
24   - // keep track of which elements are visible for tiling
25   - int firstVisibleElement;
26   - int lastVisibleElement;
27   -
28   - NSMutableArray *_lineArray;
29   - BOOL _reload;
30   -}
31   -
32   -@end
33   -
34   -
35   -#pragma mark - Implementation
36   -@implementation V8HorizontalPickerView : UIView
37   -
38   -@synthesize dataSource, delegate;
39   -@synthesize numberOfElements, currentSelectedIndex; // readonly
40   -@synthesize elementFont, textColor, selectedTextColor, currentBgImage;
41   -@synthesize leftEdgeView, rightEdgeView;
42   -@synthesize leftScrollEdgeView, rightScrollEdgeView, scrollEdgeViewPadding,elementPadding;
43   -
44   -#pragma mark - Init/Dealloc
45   -- (id)initWithFrame:(CGRect)frame {
46   - if ((self = [super initWithFrame:frame])) {
47   - _elementWidths = [[NSMutableArray array] retain];
48   - _lineArray = [[NSMutableArray array] retain];
49   -
50   - [self addScrollView];
51   -
52   - self.textColor = [UIColor blackColor];
53   - self.elementFont = [UIFont systemFontOfSize:12.0f];
54   -
55   - currentSelectedIndex = -1; // nothing is selected yet
56   -
57   - numberOfElements = 0;
58   - elementPadding = 8;
59   - dataHasBeenLoaded = NO;
60   - scrollSizeHasBeenSet = NO;
61   -
62   - firstVisibleElement = -1;
63   - lastVisibleElement = -1;
64   -
65   - scrollEdgeViewPadding = 0.0f;
66   -
67   - self.autoresizesSubviews = YES;
68   - _reload = NO;
69   - self.clickElementEnable = YES;
70   - }
71   - return self;
72   -}
73   -
74   -- (id)initWithFrame:(CGRect)frame plugins:(BOOL)plugins myVideos:(BOOL)myVideos
75   -{
76   - if ((self = [super initWithFrame:frame])) {
77   - _plugins = plugins;
78   - _myVideos = myVideos;
79   - _elementWidths = [[NSMutableArray array] retain];
80   - _lineArray = [[NSMutableArray array] retain];
81   -
82   - [self addScrollView];
83   -
84   - self.textColor = [UIColor blackColor];
85   - self.elementFont = [UIFont systemFontOfSize:12.0f];
86   -
87   - currentSelectedIndex = -1; // nothing is selected yet
88   -
89   - numberOfElements = 0;
90   - elementPadding = 8;
91   - dataHasBeenLoaded = NO;
92   - scrollSizeHasBeenSet = NO;
93   -
94   - firstVisibleElement = -1;
95   - lastVisibleElement = -1;
96   -
97   - scrollEdgeViewPadding = 0.0f;
98   -
99   - self.autoresizesSubviews = YES;
100   - _reload = NO;
101   - self.clickElementEnable = YES;
102   - }
103   - return self;
104   -}
105   -
106   -- (id)initWithFrame:(CGRect)frame home:(BOOL)home
107   -{
108   - if ((self = [super initWithFrame:frame])) {
109   -
110   - _home = home;
111   -
112   - _elementWidths = [[NSMutableArray array] retain];
113   - _lineArray = [[NSMutableArray array] retain];
114   -
115   - [self addScrollView];
116   -
117   - self.textColor = [UIColor blackColor];
118   - self.elementFont = [UIFont systemFontOfSize:12.0f];
119   -
120   - currentSelectedIndex = -1; // nothing is selected yet
121   -
122   - numberOfElements = 0;
123   - elementPadding = 8;
124   - dataHasBeenLoaded = NO;
125   - scrollSizeHasBeenSet = NO;
126   -
127   - firstVisibleElement = -1;
128   - lastVisibleElement = -1;
129   -
130   - scrollEdgeViewPadding = 0.0f;
131   -
132   - self.autoresizesSubviews = YES;
133   - _reload = NO;
134   - self.clickElementEnable = YES;
135   - }
136   - return self;
137   -}
138   -
139   -- (void)dealloc {
140   - _scrollView.delegate = nil;
141   -
142   - [_lineArray release];
143   - [_scrollView release];
144   - [_elementWidths release];
145   - [elementFont release];
146   - [leftEdgeView release];
147   - [rightEdgeView release];
148   -
149   - [leftScrollEdgeView release];
150   - [rightScrollEdgeView release];
151   -
152   - [textColor release];
153   - [_currentBg release];
154   - [super dealloc];
155   -}
156   -
157   -
158   -#pragma mark - LayoutSubViews
159   -- (void)layoutSubviews {
160   - [super layoutSubviews];
161   -
162   -// if (!(_isChatRoom && [_isChatRoom isEqualToString:@"yes"])) {
163   -// if (![self viewWithTag:1110]) {
164   -// UIView *line = [[UIView alloc] initWithFrame:CGRectMake(0, self.frame.size.height-0.5, self.frame.size.width, 0.5)];
165   -// line.tag = 1110;
166   -// [self addSubview:line];
167   -// line.backgroundColor = [Tools colorWithHexString:@"#d5d5d5"];
168   -// [line release];
169   -// }
170   -// }
171   -
172   - BOOL adjustWhenFinished = NO;
173   -
174   - if (!dataHasBeenLoaded) {
175   - [self collectData];
176   - }
177   - if (!scrollSizeHasBeenSet) {
178   - adjustWhenFinished = YES;
179   - [self setTotalWidthOfScrollContent];
180   - }
181   -
182   - SEL titleForElementSelector = @selector(horizontalPickerView:titleForElementAtIndex:);
183   - SEL viewForElementSelector = @selector(horizontalPickerView:viewForElementAtIndex:);
184   - SEL setSelectedSelector = @selector(setSelectedElement:);
185   -
186   - CGRect visibleBounds = [self bounds];
187   - CGRect scaledViewFrame = CGRectZero;
188   -
189   - // remove any subviews that are no longer visible
190   - for (UIView *view in [_scrollView subviews]) {
191   - scaledViewFrame = [_scrollView convertRect:[view frame] toView:self];
192   -
193   - // if the view doesn't intersect, it's not visible, so we can recycle it
194   - if (view.tag!=CurrentBgTag&&!CGRectIntersectsRect(scaledViewFrame, visibleBounds)) {
195   - [view removeFromSuperview];
196   - }else { // if it is still visible, update it's selected state
197   - if ([view respondsToSelector:setSelectedSelector]) {
198   - // view's tag is it's index
199   - BOOL isSelected = (currentSelectedIndex == [self indexForElement:view]);
200   - // casting to V8HorizontalPickerLabel so we can call this without all the NSInvocation jazz
201   - [(V8HorizontalPickerLabel *)view setSelectedElement:isSelected];
202   - } else {
203   - for (UIView *view1 in [view subviews]) {
204   - if ([view1 respondsToSelector:setSelectedSelector]) {
205   - // view's tag is it's index
206   - BOOL isSelected = (currentSelectedIndex == view1.tag-100);
207   - // casting to V8HorizontalPickerLabel so we can call this without all the NSInvocation jazz
208   - [(V8HorizontalPickerLabel *)view1 setSelectedElement:isSelected];
209   - }
210   - }
211   - }
212   - }
213   - }
214   -
215   - // find needed elements by looking at left and right edges of frame
216   - CGPoint offset = _scrollView.contentOffset;
217   - int firstNeededElement = [self nearestElementToPoint:CGPointMake(offset.x, 0.0f)];
218   - int lastNeededElement = [self nearestElementToPoint:CGPointMake(offset.x + visibleBounds.size.width, 0.0f)];
219   -
220   - // add any views that have become visible
221   - UIView *view = nil;
222   - CGRect tmpViewFrame = CGRectZero;
223   - CGPoint itemViewCenter = CGPointZero;
224   - for (int i = firstNeededElement; i <= lastNeededElement; i++) {
225   - view = nil; // paranoia
226   - view = [_scrollView viewWithTag:[self tagForElementAtIndex:i]];
227   - if (!view) {
228   - if (i < numberOfElements) { // make sure we are not requesting data out of range
229   - if (self.delegate && [self.delegate respondsToSelector:titleForElementSelector]) {
230   - NSString *title = [self.delegate horizontalPickerView:self titleForElementAtIndex:i];
231   - view = [self labelForForElementAtIndex:i withTitle:title];
232   - } else if (self.delegate && [self.delegate respondsToSelector:viewForElementSelector]) {
233   - view = [self.delegate horizontalPickerView:self viewForElementAtIndex:i];
234   - // move view's center to the center of item's ideal frame
235   - tmpViewFrame = [self frameForElementAtIndex:i currentBg:NO];
236   - itemViewCenter = CGPointMake((tmpViewFrame.size.width / 2.0f) + tmpViewFrame.origin.x, (tmpViewFrame.size.height / 2.0f));
237   - view.center = itemViewCenter;
238   - }
239   -
240   - if (view) {
241   - // use the index as the tag so we can find it later
242   - view.tag = [self tagForElementAtIndex:i];
243   -
244   - [_scrollView addSubview:view];
245   - }
246   - }
247   - }
248   - }
249   -
250   - // add the left or right edge views if visible
251   - CGRect viewFrame = CGRectZero;
252   - if (leftScrollEdgeView) {
253   - viewFrame = [self frameForLeftScrollEdgeView];
254   - scaledViewFrame = [_scrollView convertRect:viewFrame toView:self];
255   - if (CGRectIntersectsRect(scaledViewFrame, visibleBounds) && ![leftScrollEdgeView isDescendantOfView:_scrollView]) {
256   - leftScrollEdgeView.frame = viewFrame;
257   - [_scrollView addSubview:leftScrollEdgeView];
258   - }
259   - }
260   - if (rightScrollEdgeView) {
261   - viewFrame = [self frameForRightScrollEdgeView];
262   - scaledViewFrame = [_scrollView convertRect:viewFrame toView:self];
263   - if (CGRectIntersectsRect(scaledViewFrame, visibleBounds) && ![rightScrollEdgeView isDescendantOfView:_scrollView]) {
264   - rightScrollEdgeView.frame = viewFrame;
265   - [_scrollView addSubview:rightScrollEdgeView];
266   - }
267   - }
268   -
269   - // save off what's visible now
270   - firstVisibleElement = firstNeededElement;
271   - lastVisibleElement = lastNeededElement;
272   -
273   - // determine if scroll view needs to shift in response to resizing?
274   - if (currentSelectedIndex > -1 && adjustWhenFinished) {
275   - [self scrollToElement:currentSelectedIndex animated:NO];
276   - }
277   -
278   - if (_reload) {
279   - for (UIView *view in _lineArray) {
280   - [view removeFromSuperview];
281   - }
282   - [_lineArray removeAllObjects];
283   - }
284   -
285   -// if (_lineArray.count == 0) {
286   -// int x = 0;
287   -// int i = 0;
288   -// for (NSNumber *number in _elementWidths) {
289   -// if (i < _elementWidths.count-1) {
290   -// NSInteger width = [number integerValue];
291   -// x += width;
292   -// UIView *line = [[UIView alloc] initWithFrame:CGRectMake(x+8*i+3, (self.bounds.size.height-15)/2, 0.5, 15)];
293   -// line.backgroundColor = [Tools colorWithHexString:@"#d5d5d5"];
294   -// if (_isChatRoom && [_isChatRoom isEqualToString:@"yes"]) {
295   -// line.backgroundColor = [UIColor whiteColor];
296   -// }
297   -// [_lineArray addObject:line];
298   -// [line release];
299   -// }
300   -// i++;
301   -// }
302   -// if (_lineArray.count != 0) {
303   -// _reload = NO;
304   -// [self setNeedsLayout];
305   -// }
306   -// } else {
307   -// for (UIView *view in _lineArray) {
308   -// if (view.superview == nil) {
309   -// [_scrollView addSubview:view];
310   -// }
311   -// }
312   -// }
313   -
314   -}
315   -
316   -
317   -#pragma mark - Getters and Setters
318   -- (void)setDelegate:(id)newDelegate {
319   - if (delegate != newDelegate) {
320   - delegate = newDelegate;
321   - [self collectData];
322   - }
323   -}
324   -
325   -- (void)setDataSource:(id)newDataSource {
326   - if (dataSource != newDataSource) {
327   - dataSource = newDataSource;
328   - [self collectData];
329   - }
330   -}
331   -
332   -// allow the setting of this views background color to change the scroll view
333   -- (void)setBackgroundColor:(UIColor *)newColor {
334   - [super setBackgroundColor:newColor];
335   - _scrollView.backgroundColor = newColor;
336   - // TODO: set all subviews as well?
337   -}
338   -
339   -- (void)setLeftEdgeView:(UIView *)leftView {
340   - if (leftEdgeView != leftView) {
341   - if (leftEdgeView) {
342   - [leftEdgeView removeFromSuperview];
343   - [leftEdgeView release];
344   - }
345   - leftEdgeView = [leftView retain];
346   -
347   - CGRect tmpFrame = leftEdgeView.frame;
348   - tmpFrame.origin.x = 0.0f;
349   - tmpFrame.origin.y = 0.0f;
350   - leftEdgeView.frame = tmpFrame;
351   - [self addSubview:leftEdgeView];
352   - }
353   -}
354   -
355   -- (void)setRightEdgeView:(UIView *)rightView {
356   - if (rightEdgeView != rightView) {
357   - if (rightEdgeView) {
358   - [rightEdgeView removeFromSuperview];
359   - [rightEdgeView release];
360   - }
361   - rightEdgeView = [rightView retain];
362   -
363   - CGRect tmpFrame = rightEdgeView.frame;
364   - tmpFrame.origin.x = self.frame.size.width - tmpFrame.size.width;
365   - tmpFrame.origin.y = 0.0f;
366   - rightEdgeView.frame = tmpFrame;
367   - [self addSubview:rightEdgeView];
368   - }
369   -}
370   -
371   -- (void)setLeftScrollEdgeView:(UIView *)leftView {
372   - if (leftScrollEdgeView != leftView) {
373   - if (leftScrollEdgeView) {
374   - [leftScrollEdgeView removeFromSuperview];
375   - [leftScrollEdgeView release];
376   - }
377   - leftScrollEdgeView = [leftView retain];
378   -
379   - scrollSizeHasBeenSet = NO;
380   - [self setNeedsLayout];
381   - }
382   -}
383   -
384   -- (void)setRightScrollEdgeView:(UIView *)rightView {
385   - if (rightScrollEdgeView != rightView) {
386   - if (rightScrollEdgeView) {
387   - [rightScrollEdgeView removeFromSuperview];
388   - [rightScrollEdgeView release];
389   - }
390   - rightScrollEdgeView = [rightView retain];
391   -
392   - scrollSizeHasBeenSet = NO;
393   - [self setNeedsLayout];
394   - }
395   -}
396   -
397   -- (void)setFrame:(CGRect)newFrame {
398   - if (!CGRectEqualToRect(self.frame, newFrame)) {
399   - // causes recalulation of offsets, etc based on new size
400   - scrollSizeHasBeenSet = NO;
401   - }
402   - [super setFrame:newFrame];
403   -}
404   -
405   -- (void)setCurrentBgImage:(UIImage *)bgImage{
406   - if (currentBgImage != bgImage) {
407   - if (currentBgImage) {
408   - [currentBgImage release];
409   - }
410   - currentBgImage = [bgImage retain];
411   -
412   - if (_currentBg) {
413   - if (_isChatRoom && [_isChatRoom isEqualToString:@"yes"]) {
414   -
415   - CGFloat y = self.plugins ? (self.bounds.size.height-27)/2 : self.height - 4;
416   - CGFloat height = self.plugins ? 27 : 4;
417   - _currentBg.frame = CGRectMake(0, y, 0, height);
418   - _currentBg.backgroundColor = [UIColor whiteColor];
419   - }
420   - }
421   - }
422   -}
423   -
424   -#pragma mark - Data Fetching Methods
425   -- (void)reloadData {
426   - // remove all scrollview subviews and "recycle" them
427   - for (UIView *view in [_scrollView subviews]) {
428   - if (view.tag==CurrentBgTag) {
429   - view.frame = CGRectZero;
430   - continue;
431   - }
432   - [view removeFromSuperview];
433   - }
434   - _reload = YES;
435   - firstVisibleElement = NSIntegerMax;
436   - lastVisibleElement = NSIntegerMin;
437   -
438   - [self collectData];
439   -}
440   -
441   -- (void)collectData {
442   - scrollSizeHasBeenSet = NO;
443   - dataHasBeenLoaded = NO;
444   -
445   - [self getNumberOfElementsFromDataSource];
446   - [self getElementWidthsFromDelegate];
447   - [self setTotalWidthOfScrollContent];
448   -
449   - dataHasBeenLoaded = YES;
450   - [self setNeedsLayout];
451   -
452   - [self scrollToElement:currentSelectedIndex animated:NO];
453   -}
454   -
455   -
456   -#pragma mark - Scroll To Element Method
457   -- (void)scrollToElement:(NSInteger)index animated:(BOOL)animate {
458   - if (numberOfElements < 1) {
459   - return ;
460   - }else if (index<0) {
461   - index = 0;
462   - }else if (index>numberOfElements-1) {
463   - index = numberOfElements-1;
464   - }
465   -
466   - currentSelectedIndex = index;
467   -
468   - [UIView beginAnimations:nil context:nil];
469   - _currentBg.frame = [self frameForElementAtIndex:index currentBg:YES];
470   - if (self.plugins) {
471   - _currentBg.frame = CGRectMake(_currentBg.frame.origin.x+(_currentBg.bounds.size.width-100)/2, (self.bounds.size.height-28)/2, 100, 28);
472   - }
473   -// _selectLine.frame = CGRectMake([self frameForElementAtIndex:index].origin.x, 35, [self frameForElementAtIndex:index].size.width, 2);
474   - [UIView commitAnimations];
475   -
476   - int offsetX = [self offsetForElementAtIndex:index];
477   - int width = [self widthOfElementAtIndex:index];
478   -
479   - if (offsetX < _scrollView.contentOffset.x) {
480   - [_scrollView setContentOffset:CGPointMake(offsetX, 0) animated:animate];
481   - }else if((offsetX+width) > (_scrollView.contentOffset.x+self.bounds.size.width)){
482   - [_scrollView setContentOffset:CGPointMake((offsetX+width-self.bounds.size.width), 0) animated:animate];
483   - }
484   -
485   - // notify delegate of the selected index
486   - SEL delegateCall = @selector(horizontalPickerView:didSelectElementAtIndex:);
487   - if (self.delegate && [self.delegate respondsToSelector:delegateCall]) {
488   - [self.delegate horizontalPickerView:self didSelectElementAtIndex:index];
489   - }
490   -
491   -#if (__IPHONE_OS_VERSION_MAX_ALLOWED > __IPHONE_4_3)
492   - [self setNeedsLayout];
493   -#endif
494   -}
495   -
496   -#pragma mark - UIScrollViewDelegate Methods
497   -- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
498   -#if (__IPHONE_OS_VERSION_MAX_ALLOWED > __IPHONE_4_3)
499   - [self setNeedsLayout];
500   -#endif
501   -}
502   -
503   -#pragma mark - View Creation Methods (Internal Methods)
504   -- (void)addScrollView {
505   - if (_scrollView == nil) {
506   - _scrollView = [[UIScrollView alloc] initWithFrame:self.bounds];
507   - _scrollView.delegate = self;
508   - _scrollView.scrollEnabled = YES;
509   - _scrollView.scrollsToTop = NO;
510   - _scrollView.showsVerticalScrollIndicator = NO;
511   - _scrollView.showsHorizontalScrollIndicator = NO;
512   - _scrollView.bouncesZoom = NO;
513   - _scrollView.alwaysBounceHorizontal = YES;
514   - _scrollView.alwaysBounceVertical = NO;
515   - _scrollView.minimumZoomScale = 1.0; // setting min/max the same disables zooming
516   - _scrollView.maximumZoomScale = 1.0;
517   - _scrollView.contentInset = UIEdgeInsetsZero;
518   - _scrollView.decelerationRate = 0.1; //UIScrollViewDecelerationRateNormal;
519   - _scrollView.autoresizingMask = UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth;
520   - _scrollView.autoresizesSubviews = YES;
521   -
522   - UITapGestureRecognizer *tapRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(scrollViewTapped:)];
523   - [_scrollView addGestureRecognizer:tapRecognizer];
524   - [tapRecognizer release];
525   -
526   - if (self.plugins || self.myVideos || self.home) {
527   -
528   - CGFloat y = self.plugins ? (self.bounds.size.height-27)/2 : self.height - 4;
529   - CGFloat height = self.plugins ? 27 : 4;
530   -
531   - _currentBg = [[UIImageView alloc]init];
532   - _currentBg = [[UIView alloc] initWithFrame:CGRectMake(0, y, 0, height)];
533   - _currentBg.tag = CurrentBgTag;
534   - _currentBg.backgroundColor = self.plugins ? [UIColor colorWithHexString:@"#fff100"] : [UIColor yellowColorCNLive];
535   - _currentBg.layer.borderColor = [UIColor colorWithHexString:@"#f6e80e"].CGColor;
536   - _currentBg.layer.borderWidth = 0.5;
537   -
538   - if (self.plugins) {
539   - _currentBg.layer.cornerRadius = 13.5;
540   - _currentBg.layer.masksToBounds = YES;
541   -
542   - }
543   - [_scrollView addSubview:_currentBg];
544   - }
545   -
546   - [self addSubview:_scrollView];
547   -
548   - }
549   -}
550   -
551   -// create a UILabel for this element.
552   -- (V8HorizontalPickerLabel *)labelForForElementAtIndex:(NSInteger)index withTitle:(NSString *)title {
553   - CGRect labelFrame = [self frameForElementAtIndex:index currentBg:NO];
554   - V8HorizontalPickerLabel *elementLabel = [[V8HorizontalPickerLabel alloc] initWithFrame:labelFrame];
555   -
556   - elementLabel.textAlignment = NSTextAlignmentCenter;
557   - elementLabel.backgroundColor = [UIColor clearColor];
558   - elementLabel.text = title;
559   - elementLabel.font = self.elementFont;
560   -
561   - elementLabel.normalStateColor = self.textColor;
562   - elementLabel.selectedStateColor = self.selectedTextColor;
563   -
564   - elementLabel.selectedElement = (currentSelectedIndex == index);
565   -
566   - return [elementLabel autorelease];
567   -}
568   -
569   -
570   -#pragma mark - DataSource Calling Method (Internal Method)
571   -- (void)getNumberOfElementsFromDataSource {
572   - SEL dataSourceCall = @selector(numberOfElementsInHorizontalPickerView:);
573   - if (self.dataSource && [self.dataSource respondsToSelector:dataSourceCall]) {
574   - numberOfElements = [self.dataSource numberOfElementsInHorizontalPickerView:self];
575   - } else {
576   - numberOfElements = 0;
577   - }
578   -}
579   -
580   -
581   -#pragma mark - Delegate Calling Method (Internal Method)
582   -- (void)getElementWidthsFromDelegate {
583   - SEL delegateCall = @selector(horizontalPickerView:widthForElementAtIndex:);
584   - [_elementWidths removeAllObjects];
585   - for (int i = 0; i < numberOfElements; i++) {
586   - if (self.delegate && [self.delegate respondsToSelector:delegateCall]) {
587   - NSInteger width = [self.delegate horizontalPickerView:self widthForElementAtIndex:i];
588   - [_elementWidths addObject:[NSNumber numberWithInteger:width]];
589   - }
590   - }
591   -
592   -// int x = 0;
593   -// for (NSNumber *number in _elementWidths) {
594   -// NSInteger width = [number integerValue];
595   -// x += width;
596   -// UIView *line = [[UIView alloc] initWithFrame:CGRectMake(x, 11, 1, 15)];
597   -// [_scrollView addSubview:line];
598   -//// line.backgroundColor = [Utility colorWithHexString:@"#d5d5d5"];
599   -// line.backgroundColor = [UIColor redColor];
600   -// [line release];
601   -// }
602   -
603   -}
604   -
605   -
606   -#pragma mark - View Calculation and Manipulation Methods (Internal Methods)
607   -// what is the total width of the content area?
608   -- (void)setTotalWidthOfScrollContent {
609   - NSInteger totalWidth = 0;
610   -
611   - totalWidth += [self leftScrollEdgeWidth];
612   - totalWidth += [self rightScrollEdgeWidth];
613   -
614   - // sum the width of all elements
615   - for (NSNumber *width in _elementWidths) {
616   - totalWidth += [width intValue];
617   - totalWidth += elementPadding;
618   - }
619   - // TODO: is this necessary?
620   - totalWidth -= elementPadding; // we add "one too many" in for loop
621   -
622   - if (_scrollView) {
623   - // create our scroll view as wide as all the elements to be included
624   - _scrollView.contentSize = CGSizeMake(totalWidth, self.bounds.size.height);
625   - scrollSizeHasBeenSet = YES;
626   - }
627   -}
628   -
629   -// what is the left-most edge of the element at the given index?
630   -- (NSInteger)offsetForElementAtIndex:(NSInteger)index {
631   - NSInteger offset = 0;
632   - if (index >= [_elementWidths count]) {
633   - return 0;
634   - }
635   -
636   - offset += [self leftScrollEdgeWidth];
637   -
638   - for (int i = 0; i < index && i < [_elementWidths count]; i++) {
639   - offset += [[_elementWidths safetyObjectAtIndex:i] intValue];
640   - offset += elementPadding;
641   - }
642   - return offset;
643   -}
644   -
645   -// return the tag for an element at a given index
646   -- (NSInteger)tagForElementAtIndex:(NSInteger)index {
647   - return (index + 1) * 10;
648   -}
649   -
650   -// return the index given an element's tag
651   -- (NSInteger)indexForElement:(UIView *)element {
652   - return (element.tag / 10) - 1;
653   -}
654   -
655   -// what is the width of the element at the given index?
656   -- (NSInteger)widthOfElementAtIndex:(NSInteger)index {
657   - return [[_elementWidths safetyObjectAtIndex:index] intValue];
658   -}
659   -
660   -// what is the frame for the element at the given index?
661   -- (CGRect)frameForElementAtIndex:(NSInteger)index currentBg:(BOOL)flag {
662   - CGFloat width = 0.0f;
663   - if ([_elementWidths count] > index) {
664   - width = [[_elementWidths safetyObjectAtIndex:index] intValue];
665   - }
666   - if (flag) {
667   - if (_isChatRoom && [_isChatRoom isEqualToString:@"yes"]) {
668   - return CGRectMake([self offsetForElementAtIndex:index]-5, self.bounds.size.height-28, width+8.5, 28);
669   - }
670   - CGFloat y = self.plugins ? (self.bounds.size.height-27)/2 : self.height -4;
671   - CGFloat height = self.plugins ? 27 : 4;
672   - if (self.home) {
673   - return CGRectMake([self offsetForElementAtIndex:index]+8, y, width-16, height);
674   - }
675   - return CGRectMake([self offsetForElementAtIndex:index], y, width, height);
676   - } else {
677   - return CGRectMake([self offsetForElementAtIndex:index], 0.0f, width, self.frame.size.height);
678   - }
679   -}
680   -
681   -// what is the frame for the left scroll edge view?
682   -- (CGRect)frameForLeftScrollEdgeView {
683   - if (leftScrollEdgeView) {
684   - CGFloat scrollHeight = _scrollView.contentSize.height;
685   - CGFloat viewHeight = leftScrollEdgeView.frame.size.height;
686   - return CGRectMake(0.0f, ((scrollHeight / 2.0f) - (viewHeight / 2.0f)),
687   - leftScrollEdgeView.frame.size.width, viewHeight);
688   - } else {
689   - return CGRectZero;
690   - }
691   -}
692   -
693   -// what is the width of the left edge of the scroll area?
694   -- (CGFloat)leftScrollEdgeWidth {
695   - if (leftScrollEdgeView) {
696   - CGFloat width = leftScrollEdgeView.frame.size.width;
697   - width += scrollEdgeViewPadding;
698   - return width;
699   - }
700   - return 0.0f;
701   -}
702   -
703   -// what is the frame for the right scroll edge view?
704   -- (CGRect)frameForRightScrollEdgeView {
705   - if (rightScrollEdgeView) {
706   - CGFloat scrollWidth = _scrollView.contentSize.width;
707   - CGFloat scrollHeight = _scrollView.contentSize.height;
708   - CGFloat viewWidth = rightScrollEdgeView.frame.size.width;
709   - CGFloat viewHeight = rightScrollEdgeView.frame.size.height;
710   - return CGRectMake(scrollWidth - viewWidth, ((scrollHeight / 2.0f) - (viewHeight / 2.0f)),
711   - viewWidth, viewHeight);
712   - } else {
713   - return CGRectZero;
714   - }
715   -}
716   -
717   -// what is the width of the right edge of the scroll area?
718   -- (CGFloat)rightScrollEdgeWidth {
719   - if (rightScrollEdgeView) {
720   - CGFloat width = rightScrollEdgeView.frame.size.width;
721   - width += scrollEdgeViewPadding;
722   - return width;
723   - }
724   - return 0.0f;
725   -}
726   -
727   -// what is the element nearest to the given point?
728   -- (NSInteger)nearestElementToPoint:(CGPoint)point {
729   - for (int i = 0; i < numberOfElements; i++) {
730   - CGRect frame = [self frameForElementAtIndex:i currentBg:NO];
731   - if (CGRectContainsPoint(frame, point)) {
732   - return i;
733   - } else if (point.x < frame.origin.x) {
734   - // if the center is before this element, go back to last one,
735   - // unless we're at the beginning
736   - if (i > 0) {
737   - return i - 1;
738   - } else {
739   - return 0;
740   - }
741   - break;
742   - } else if (point.x > frame.origin.y) {
743   - // if the center is past the last element, scroll to it
744   - if (i == numberOfElements - 1) {
745   - return i;
746   - }
747   - }
748   - }
749   - return 0;
750   -}
751   -
752   -// similar to nearestElementToPoint: however, this method does not look past beginning/end
753   -- (NSInteger)elementContainingPoint:(CGPoint)point {
754   - for (int i = 0; i < numberOfElements; i++) {
755   - CGRect frame = [self frameForElementAtIndex:i currentBg:NO];
756   - if (CGRectContainsPoint(frame, point)) {
757   - return i;
758   - }
759   - }
760   - return -1;
761   -}
762   -
763   -#pragma mark - Tap Gesture Recognizer Handler Method
764   -// use the gesture recognizer to slide to element under tap
765   -- (void)scrollViewTapped:(UITapGestureRecognizer *)recognizer {
766   - if (!self.clickElementEnable) {
767   - return;
768   - }
769   - if (recognizer.state == UIGestureRecognizerStateRecognized) {
770   - CGPoint tapLocation = [recognizer locationInView:_scrollView];
771   - NSInteger elementIndex = [self elementContainingPoint:tapLocation];
772   - if (elementIndex != -1) { // point not in element
773   - [self scrollToElement:elementIndex animated:YES];
774   - }
775   - }
776   -}
777   -
778   -@end
779   -
780   -// ------------------------------------------------------------------------
781   -#pragma mark - Picker Label Implementation
782   -@implementation V8HorizontalPickerLabel : UILabel
783   -
784   -@synthesize selectedElement, selectedStateColor, normalStateColor;
785   -
786   -- (void)setSelectedElement:(BOOL)selected {
787   - if (selectedElement != selected) {
788   - if (selected) {
789   - self.textColor = self.selectedStateColor;
790   - } else {
791   - self.textColor = self.normalStateColor;
792   - }
793   - selectedElement = selected;
794   - [self setNeedsLayout];
795   - }
796   -}
797   -
798   -- (void)setNormalStateColor:(UIColor *)color {
799   - if (normalStateColor != color) {
800   - [normalStateColor release];
801   - normalStateColor = [color retain];
802   - self.textColor = normalStateColor;
803   - [self setNeedsLayout];
804   - }
805   -}
806   -
807   -@end
LiveVideoCloud/Classes/SDK/V8HorizontalPickerView/V8HorizontalPickerViewProtocol.h deleted 100755 → 0
1   -//
2   -// V8HorizontalPickerViewProtocol.h
3   -//
4   -// Created by Shawn Veader on 9/17/10.
5   -// Copyright 2010 V8 Labs, LLC. All rights reserved.
6   -//
7   -
8   -@class V8HorizontalPickerView;
9   -
10   -// ------------------------------------------------------------------
11   -// V8HorizontalPickerView DataSource Protocol
12   -@protocol V8HorizontalPickerViewDataSource <NSObject>
13   -@required
14   -// data source is responsible for reporting how many elements there are
15   -- (NSInteger)numberOfElementsInHorizontalPickerView:(V8HorizontalPickerView *)picker;
16   -@end
17   -
18   -
19   -// ------------------------------------------------------------------
20   -// V8HorizontalPickerView Delegate Protocol
21   -@protocol V8HorizontalPickerViewDelegate <NSObject>
22   -
23   -@optional
24   -// delegate callback to notify delegate selected element has changed
25   -- (void)horizontalPickerView:(V8HorizontalPickerView *)picker didSelectElementAtIndex:(NSInteger)index;
26   -
27   -// one of these two methods must be defined
28   -- (NSString *)horizontalPickerView:(V8HorizontalPickerView *)picker titleForElementAtIndex:(NSInteger)index;
29   -- (UIView *)horizontalPickerView:(V8HorizontalPickerView *)picker viewForElementAtIndex:(NSInteger)index;
30   -// any view returned from this must confirm to the V8HorizontalPickerElementState protocol
31   -
32   -@required
33   -// delegate is responsible for reporting the size of each element
34   -- (NSInteger)horizontalPickerView:(V8HorizontalPickerView *)picker widthForElementAtIndex:(NSInteger)index;
35   -
36   -@end
37   -
38   -// ------------------------------------------------------------------
39   -// V8HorizontalPickerElementState Protocol
40   -@protocol V8HorizontalPickerElementState <NSObject>
41   -@required
42   -// element views should know how display themselves based on selected status
43   -- (void)setSelectedElement:(BOOL)selected;
44   -@end
45 0 \ No newline at end of file
LiveVideoCloud/Classes/Sections/HomePageSections/JBAutoRollTableView.h deleted 100644 → 0
1   -//
2   -// JBAutoRollTableView.h
3   -// LiveVideoCloud
4   -//
5   -// Created by cnliveJunBo on 17/6/22.
6   -// Copyright © 2017年 cnlive. All rights reserved.
7   -//
8   -
9   -#import <UIKit/UIKit.h>
10   -
11   -@interface JBAutoRollTableView : UITableView
12   -
13   -@property (nonatomic, strong) NSArray *news;
14   -
15   -@end
LiveVideoCloud/Classes/Sections/HomePageSections/JBAutoRollTableView.m deleted 100644 → 0
1   -//
2   -// JBAutoRollTableView.m
3   -// LiveVideoCloud
4   -//
5   -// Created by cnliveJunBo on 17/6/22.
6   -// Copyright © 2017年 cnlive. All rights reserved.
7   -//
8   -
9   -#import "JBAutoRollTableView.h"
10   -
11   -@interface JBAutoRollTableView()<UITableViewDataSource, UITableViewDelegate> {
12   -
13   - NSTimer *_timer;
14   - NSIndexPath *_currentIndexPath;
15   -}
16   -
17   -@end
18   -
19   -@implementation JBAutoRollTableView
20   -
21   -- (instancetype)initWithFrame:(CGRect)frame style:(UITableViewStyle)style
22   -{
23   - self = [super initWithFrame:frame style:style];
24   - if (self) {
25   - self.showsHorizontalScrollIndicator = NO;
26   - self.showsVerticalScrollIndicator = NO;
27   - self.delegate = self;
28   - self.dataSource = self;
29   - self.rowHeight = self.height;
30   - self.separatorStyle = UITableViewCellSeparatorStyleNone;
31   - self.scrollEnabled = NO;
32   - self.scrollsToTop = NO;
33   - }
34   - return self;
35   -}
36   -
37   -- (void)setNews:(NSArray *)news {
38   - if (_news != news) {
39   - _news = news;
40   - [self reloadData];
41   - [_timer invalidate];
42   - _currentIndexPath = [NSIndexPath indexPathForRow:0 inSection:0];
43   - if (news.count > 1) {
44   - _timer = [NSTimer scheduledTimerWithTimeInterval:2 target:self selector:@selector(autoRollNews) userInfo:nil repeats:YES];
45   - }
46   - }
47   -}
48   -
49   -- (void)autoRollNews
50   -{
51   - if (_news.count < 2) {
52   - [_timer invalidate];
53   - _timer = nil;
54   - return;
55   - }
56   - if (_currentIndexPath.row < _news.count-1) {
57   - [self scrollToRowAtIndexPath:[NSIndexPath indexPathForRow:_currentIndexPath.row + 1 inSection:0] atScrollPosition:UITableViewScrollPositionMiddle animated:YES];
58   - _currentIndexPath = [NSIndexPath indexPathForRow:_currentIndexPath.row + 1 inSection:0];
59   - } else {
60   -
61   - NSMutableArray *array = [NSMutableArray arrayWithArray:_news];
62   - [array insertObject:[_news lastObject] atIndex:0];
63   - [array removeLastObject];
64   - _news = array;
65   - [self reloadData];
66   - [self scrollToRowAtIndexPath:[NSIndexPath indexPathForRow:0 inSection:0] atScrollPosition:UITableViewScrollPositionMiddle animated:NO];
67   - [self scrollToRowAtIndexPath:[NSIndexPath indexPathForRow:1 inSection:0] atScrollPosition:UITableViewScrollPositionMiddle animated:YES];
68   - _currentIndexPath = [NSIndexPath indexPathForRow:1 inSection:0];
69   - }
70   -}
71   -
72   -#pragma mark - UITableViewDataSource !!!!!!!!!!!!!!!!!!!!
73   -- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
74   -{
75   - return _news.count;
76   -}
77   -
78   -- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
79   -{
80   - static NSString *identify = @"newsTableViewcell";
81   - UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:identify];
82   - if (cell == nil) {
83   - cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:identify];
84   - cell.selectionStyle = UITableViewCellSelectionStyleNone;
85   - UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, KScreenWidth, self.height)];
86   - label.tag = 101;
87   - label.textColor = [UIColor grayColorCNLive];
88   - label.font = [UIFont systemFontOfSize:14];
89   - [cell addSubview:label];
90   - }
91   - ProgramModel *model = [_news safetyObjectAtIndex:indexPath.row];
92   - UILabel *label = (UILabel *)[cell viewWithTag:101];
93   - label.text = model.title;
94   - return cell;
95   -}
96   -
97   -#pragma mark - UITableViewDelegate !!!!!!!!!!!!!!!!!!!!
98   -- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
99   -
100   - [tableView deselectRowAtIndexPath:indexPath animated:YES];
101   -}
102   -
103   -- (void)removeFromSuperview {
104   - [super removeFromSuperview];
105   -
106   - [_timer invalidate];
107   - _timer = nil;
108   -}
109   -
110   -@end
LiveVideoCloud/Classes/Sections/HomePageSections/JBBannerView.h deleted 100644 → 0
1   -//
2   -// JBBannerView.h
3   -// LiveVideoCloud
4   -//
5   -// Created by cnliveJunBo on 17/6/21.
6   -// Copyright © 2017年 cnlive. All rights reserved.
7   -//
8   -
9   -#import <UIKit/UIKit.h>
10   -@class JBBannerView;
11   -
12   -@protocol JBBannerViewDelegate <NSObject>
13   -@optional
14   -- (void)didSelectedBannerView:(JBBannerView *)banner atIndex:(NSInteger)index;
15   -@end
16   -
17   -@protocol JBBannerViewDatasource <NSObject>
18   -@required
19   -- (NSInteger)numberOfPages;
20   -- (UIView *)pageAtIndex:(NSInteger)index;
21   -@end
22   -
23   -@interface JBBannerView : UIView
24   -
25   -@property (nonatomic, weak) id <JBBannerViewDelegate> delegate;
26   -@property (nonatomic, weak) id <JBBannerViewDatasource> datasource;
27   -@property (nonatomic, strong) NSArray *bannerArray;
28   -
29   -@end
LiveVideoCloud/Classes/Sections/HomePageSections/JBBannerView.m deleted 100644 → 0
1   -//
2   -// JBBannerView.m
3   -// LiveVideoCloud
4   -//
5   -// Created by cnliveJunBo on 17/6/21.
6   -// Copyright © 2017年 cnlive. All rights reserved.
7   -//
8   -
9   -#import "JBBannerView.h"
10   -
11   -#define kDataScaleSeed 100
12   -
13   -@interface JBBannerView() <UICollectionViewDelegate, UICollectionViewDataSource> {
14   -
15   - NSTimer *_timer;
16   - NSTimeInterval _timerDuration;
17   -}
18   -
19   -@property (nonatomic, strong) UICollectionView *collectionView;
20   -@property (nonatomic, strong) UILabel *cycleViewTitle;
21   -
22   -@end
23   -
24   -@implementation JBBannerView
25   -
26   -- (instancetype)initWithFrame:(CGRect)frame
27   -{
28   - self = [super initWithFrame:frame];
29   - if (self) {
30   - _timerDuration = 3.0;
31   - _timer = [NSTimer timerWithTimeInterval:_timerDuration target:self selector:@selector(updateTimer) userInfo:nil repeats:YES];
32   - [[NSRunLoop currentRunLoop] addTimer:_timer forMode:NSRunLoopCommonModes];
33   -
34   - [self addSubview:self.collectionView];
35   - [self addSubview:self.cycleViewTitle];
36   - }
37   - return self;
38   -}
39   -
40   -#pragma mark - 时钟方法
41   -- (void)updateTimer {
42   -
43   - NSIndexPath *indexPath = [_collectionView indexPathsForVisibleItems].lastObject;
44   - NSIndexPath *newIndexPath = [NSIndexPath indexPathForItem:indexPath.item + 1 inSection:indexPath.section];
45   -
46   - [_collectionView scrollToItemAtIndexPath:newIndexPath atScrollPosition:UICollectionViewScrollPositionLeft animated:YES];
47   -}
48   -
49   -- (void)setBannerArray:(NSArray *)bannerArray {
50   -
51   - if (_bannerArray != bannerArray) {
52   - _bannerArray = bannerArray;
53   -
54   -
55   - }
56   -}
57   -
58   -#pragma mark - UICollectionViewDelegate !!!!!!!!!!!!
59   -- (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath {
60   -
61   -
62   -}
63   -
64   -- (void)scrollViewDidEndScrollingAnimation:(UIScrollView *)scrollView {
65   -
66   - [self scrollViewDidEndDecelerating:scrollView];
67   -}
68   -
69   -- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView {
70   -
71   - NSInteger page = scrollView.contentOffset.x / scrollView.bounds.size.width;
72   -
73   - self.cycleViewTitle.text = [NSString stringWithFormat:@" %ld",(long)(page % 3)];
74   -
75   - NSInteger lastItem = [_collectionView numberOfItemsInSection:0];
76   -
77   - if (page == 0 || page == (lastItem - 1)) {
78   -
79   - NSInteger offset = 3;
80   -
81   - if (page == (lastItem - 1)) {
82   - offset = offset - 1;
83   - }
84   -
85   - CGFloat width = scrollView.bounds.size.width;
86   -
87   - scrollView.contentOffset = CGPointMake(offset * width, 0);
88   - }
89   -}
90   -
91   -- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView {
92   -
93   - _timer.fireDate = [NSDate distantFuture];
94   -}
95   -
96   -- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate {
97   -
98   - _timer.fireDate = [NSDate dateWithTimeIntervalSinceNow:_timerDuration];
99   -}
100   -
101   -#pragma mark - UICollectionViewDataSource !!!!!!!!!!!!
102   -- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section {
103   -
104   - return 6;
105   -}
106   -
107   -- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath {
108   -
109   - UICollectionViewCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"collcellId" forIndexPath:indexPath];
110   - switch (indexPath.item) {
111   - case 0:
112   - cell.backgroundColor = [UIColor yellowColor];
113   - break;
114   - case 1:
115   - cell.backgroundColor = [UIColor greenColor];
116   - break;
117   - case 2:
118   - cell.backgroundColor = [UIColor blueColor];
119   - break;
120   - case 3:
121   - cell.backgroundColor = [UIColor yellowColor];
122   - break;
123   - case 4:
124   - cell.backgroundColor = [UIColor greenColor];
125   - break;
126   - case 5:
127   - cell.backgroundColor = [UIColor blueColor];
128   - break;
129   - default:
130   - break;
131   - }
132   -
133   - return cell;
134   -}
135   -
136   -#pragma mark - GetMethod !!!!!!!!!!!!!!!!!!!!!!!!!!!
137   -- (UICollectionView *)collectionView {
138   -
139   - if (!_collectionView) {
140   - UICollectionViewFlowLayout *layout = [[UICollectionViewFlowLayout alloc] init];
141   - layout.minimumLineSpacing = 0;
142   - layout.minimumInteritemSpacing = 0;
143   - layout.itemSize = CGSizeMake(KScreenWidth-20, (KScreenWidth-20)/2);
144   - layout.scrollDirection = UICollectionViewScrollDirectionHorizontal;
145   -
146   - _collectionView = [[UICollectionView alloc] initWithFrame:CGRectMake(10, 10, KScreenWidth-20, (KScreenWidth-20)/2) collectionViewLayout:layout];
147   - _collectionView.backgroundColor = [UIColor whiteColor];
148   - _collectionView.delegate = self;
149   - _collectionView.dataSource = self;
150   - _collectionView.pagingEnabled = YES;
151   - _collectionView.showsVerticalScrollIndicator = NO;
152   - _collectionView.showsHorizontalScrollIndicator = NO;
153   - _collectionView.bounces = NO;
154   - [_collectionView registerClass:[UICollectionViewCell class] forCellWithReuseIdentifier:@"collcellId"];
155   - }
156   - return _collectionView;
157   -}
158   -
159   -- (UILabel *)cycleViewTitle {
160   -
161   - if (!_cycleViewTitle) {
162   -
163   - _cycleViewTitle = [[UILabel alloc] initWithFrame:CGRectMake(10, self.collectionView.bottom-35, self.collectionView.width, 35)];
164   - _cycleViewTitle.backgroundColor = [UIColor colorWithWhite:0 alpha:0.5];
165   - _cycleViewTitle.textColor = [UIColor whiteColor];
166   - _cycleViewTitle.font = [UIFont systemFontOfSize:19];
167   - }
168   - return _cycleViewTitle;
169   -}
170   -
171   -- (void)removeFromSuperview {
172   - [super removeFromSuperview];
173   -
174   - [_timer invalidate];
175   - _timer = nil;
176   -}
177   -
178   -@end
LiveVideoCloud/Classes/Sections/HomePageSections/JBSearchView.h deleted 100644 → 0
1   -//
2   -// JBSearchView.h
3   -// LiveVideoCloud
4   -//
5   -// Created by cnliveJunBo on 17/6/22.
6   -// Copyright © 2017年 cnlive. All rights reserved.
7   -//
8   -
9   -#import <UIKit/UIKit.h>
10   -
11   -@interface JBSearchView : UIView
12   -
13   -@property (nonatomic, strong) NSArray *sortArray;
14   -
15   -@end
LiveVideoCloud/Classes/Sections/HomePageSections/JBSearchView.m deleted 100644 → 0
1   -//
2   -// JBSearchView.m
3   -// LiveVideoCloud
4   -//
5   -// Created by cnliveJunBo on 17/6/22.
6   -// Copyright © 2017年 cnlive. All rights reserved.
7   -//
8   -
9   -#import "JBSearchView.h"
10   -
11   -@interface JBSearchView()
12   -
13   -@property (nonatomic, strong) UIButton *searchBtn;
14   -@property (nonatomic, strong) UIView *searchLine;
15   -@property (nonatomic, strong) UIView *sortBtnBackground;
16   -
17   -@end
18   -
19   -@implementation JBSearchView
20   -
21   -- (instancetype)initWithFrame:(CGRect)frame
22   -{
23   - self = [super initWithFrame:frame];
24   - if (self) {
25   - [self addSubview:self.searchBtn];
26   - }
27   - return self;
28   -}
29   -
30   -- (void)setSortArray:(NSArray *)sortArray {
31   -
32   - if (_sortArray != sortArray) {
33   - _sortArray = sortArray;
34   - }
35   -
36   - if ([Tools isArray:sortArray]) {
37   -
38   - [self addSubview:self.sortBtnBackground];
39   - CGFloat width = 13;
40   - for (int i = 0; i < sortArray.count; i++) {
41   - NSDictionary *dic = [sortArray safetyObjectAtIndex:i];
42   - NSString *name = dic[@"name"];
43   - CGRect rect = [name boundingRectWithSize:CGSizeMake(0, 0) options:NSStringDrawingUsesLineFragmentOrigin attributes:@{NSFontAttributeName: [UIFont systemFontOfSize:15]} context:nil];
44   - UIButton *sortBtn = [UIButton buttonWithType:UIButtonTypeCustom];
45   - sortBtn.tag = 100+i;
46   - sortBtn.frame = CGRectMake(width, 0, rect.size.width, 33);
47   - sortBtn.titleLabel.font = [UIFont systemFontOfSize:14];
48   - [sortBtn setTitle:name forState:UIControlStateNormal];
49   - [sortBtn setTitleColor:[UIColor grayColorCNLive] forState:UIControlStateNormal];
50   - [sortBtn addTarget:self action:@selector(sortBtnAction:) forControlEvents:UIControlEventTouchUpInside];
51   - [self.sortBtnBackground addSubview:sortBtn];
52   - width += rect.size.width + 13;
53   - }
54   - self.sortBtnBackground.width = width;
55   - self.sortBtnBackground.x = KScreenWidth-self.sortBtnBackground.width-10;
56   - self.searchBtn.width = KScreenWidth-20-7-self.sortBtnBackground.width;
57   - [self addSubview:self.sortBtnBackground];
58   -
59   - } else {
60   -
61   - self.searchBtn.width = KScreenWidth-20;
62   - [self.sortBtnBackground removeFromSuperview];
63   - }
64   -}
65   -
66   -#pragma mark - ACtion !!!!!!!!!!!!!!!!!!!!!!!
67   -- (void)searchBtnAction {
68   -
69   - NSLog(@"搜索!!!!!!");
70   -}
71   -
72   -- (void)sortBtnAction:(UIButton *)button
73   -{
74   - NSLog(@"分类按钮!!!!!");
75   -
76   - NSDictionary *dic = [_sortArray safetyObjectAtIndex:button.tag-100];
77   -// SortViewController *sort=[[SortViewController alloc] init];
78   -// sort.searchBtn = YES;
79   -// sort.title = _model.title;
80   -// sort.cid = self.model.cid;
81   -// if ([Tools isDictionary:dic]) {
82   -// sort.sortId = dic[@"id"];
83   -// sort.sortType = dic[@"type"];
84   -// }
85   -// [self.viewController.navigationController pushViewController:sort animated:YES];
86   -}
87   -
88   -#pragma mark - GetMethod !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
89   -- (UIButton *)searchBtn {
90   - if (!_searchBtn) {
91   - _searchBtn = [UIButton buttonWithType:UIButtonTypeCustom];
92   - _searchBtn.frame = CGRectMake(10, 6, KScreenWidth-20, 33);
93   - [_searchBtn setImage:[UIImage imageNamed:@"search"] forState:UIControlStateNormal];
94   - [_searchBtn setTitle:@"搜索" forState:UIControlStateNormal];
95   - [_searchBtn setTitleColor:[UIColor grayColor] forState:UIControlStateNormal];
96   - [_searchBtn setImageEdgeInsets:UIEdgeInsetsMake(0, -5, 0, 0)];
97   - _searchBtn.titleLabel.font = [UIFont systemFontOfSize:14];
98   - _searchBtn.backgroundColor = [UIColor whiteColor];
99   - _searchBtn.layer.cornerRadius = 16;
100   - _searchBtn.layer.masksToBounds = YES;
101   - [_searchBtn addTarget:self action:@selector(searchBtnAction) forControlEvents:UIControlEventTouchUpInside];
102   - }
103   - return _searchBtn;
104   -}
105   -
106   -- (UIView *)sortBtnBackground
107   -{
108   - if (!_sortBtnBackground) {
109   - _sortBtnBackground = [[UIView alloc] initWithFrame:CGRectMake(0, 6, 0, 33)];
110   - _sortBtnBackground.backgroundColor = [UIColor whiteColor];
111   - _sortBtnBackground.layer.cornerRadius = 16;
112   - _sortBtnBackground.layer.masksToBounds = YES;
113   - }
114   - return _sortBtnBackground;
115   -}
116   -
117   -@end
LiveVideoCloud/Classes/Sections/HomePageSections/LVCBannerAndMarqueeModel.h deleted 100644 → 0
1   -//
2   -// LVCBannerAndMarqueeModel.h
3   -// LiveVideoCloud
4   -//
5   -// Created by cnliveJunBo on 17/6/20.
6   -// Copyright © 2017年 cnlive. All rights reserved.
7   -//
8   -
9   -#import "BaseModel.h"
10   -
11   -@interface LVCBannerAndMarqueeModel : BaseModel // channels 中 programs 也用这个model
12   -
13   -@property (nonatomic, copy)NSString *url;
14   -@property (nonatomic, copy)NSString *img;
15   -@property (nonatomic, copy)NSString *mediaId;
16   -@property (nonatomic, copy)NSString *title;
17   -@property (nonatomic, copy)NSString *vipFlag;
18   -@property (nonatomic, copy)NSString *docID;
19   -@property (nonatomic, copy)NSString *picType; //列表显示图片类型 H 横图 V 竖图 M 明星人气榜
20   -@property (nonatomic, copy)NSString *subTitle;
21   -@property (nonatomic, copy)NSString *type; //节目类型 live:直播,program:普通视频,web:网页,series:连续剧,album:专辑
22   -
23   -//@property (nonatomic, copy)NSString *playMediaId;
24   -//@property (nonatomic, copy)NSString *desc;
25   -//@property (nonatomic, copy)NSString *itemId;
26   -//@property (nonatomic, copy)NSString *activityId;
27   -
28   -@end
LiveVideoCloud/Classes/Sections/HomePageSections/LVCBannerAndMarqueeModel.m deleted 100644 → 0
1   -//
2   -// LVCBannerAndMarqueeModel.m
3   -// LiveVideoCloud
4   -//
5   -// Created by cnliveJunBo on 17/6/20.
6   -// Copyright © 2017年 cnlive. All rights reserved.
7   -//
8   -
9   -#import "LVCBannerAndMarqueeModel.h"
10   -
11   -@implementation LVCBannerAndMarqueeModel
12   -
13   -@end
LiveVideoCloud/Classes/Sections/HomePageSections/LVCBigHorizontalCollectionViewCell.h deleted 100644 → 0
1   -//
2   -// LVCBigHorizontalCollectionViewCell.h
3   -// LiveVideoCloud
4   -//
5   -// Created by cnliveJunBo on 17/6/23.
6   -// Copyright © 2017年 cnlive. All rights reserved.
7   -//
8   -
9   -#import <UIKit/UIKit.h>
10   -
11   -@interface LVCBigHorizontalCollectionViewCell : UICollectionViewCell
12   -
13   -@property (nonatomic, strong)ProgramModel *model;
14   -@property (nonatomic, strong)ProgramModel *liveModel;
15   -
16   -@end
LiveVideoCloud/Classes/Sections/HomePageSections/LVCBigHorizontalCollectionViewCell.m deleted 100644 → 0
1   -//
2   -// LVCBigHorizontalCollectionViewCell.m
3   -// LiveVideoCloud
4   -//
5   -// Created by cnliveJunBo on 17/6/23.
6   -// Copyright © 2017年 cnlive. All rights reserved.
7   -//
8   -
9   -#import "LVCBigHorizontalCollectionViewCell.h"
10   -
11   -@interface LVCBigHorizontalCollectionViewCell() {
12   -
13   - CGFloat _x;
14   -}
15   -
16   -@property (nonatomic, strong) UIImageView *imageView;
17   -@property (nonatomic, strong) UILabel *title;
18   -@property (nonatomic, strong) UILabel *detail;
19   -@property (nonatomic, strong) UIImageView *typeImage; //节目类型角标
20   -
21   -@end
22   -
23   -@implementation LVCBigHorizontalCollectionViewCell
24   -
25   -- (instancetype)initWithFrame:(CGRect)frame
26   -{
27   - self = [super initWithFrame:frame];
28   - if (self) {
29   - if ([UIDevice currentDevice].systemVersion.floatValue >= 10) {
30   - _x = 0;
31   - } else {
32   - _x = 10;
33   - }
34   - [self.contentView addSubview:self.imageView];
35   - [self.contentView addSubview:self.title];
36   - [self.contentView addSubview:self.detail];
37   - [self.imageView addSubview:self.typeImage];
38   - }
39   - return self;
40   -}
41   -
42   -- (void)setModel:(ProgramModel *)model {
43   -
44   - if (_model != model) {
45   - _model = model;
46   - }
47   -}
48   -
49   -- (void)setLiveModel:(ProgramModel *)liveModel {
50   -
51   - if (_liveModel != liveModel) {
52   - _liveModel = liveModel;
53   - }
54   -}
55   -
56   -#pragma mark - GetMethod !!!!!!!!!!!!!!!!!!
57   -- (UIImageView *)imageView
58   -{
59   - if (!_imageView) {
60   - _imageView = [[UIImageView alloc] initWithFrame:CGRectMake(_x, 0, self.contentView.width-20, (self.contentView.width-20)/2)];
61   - _imageView.backgroundColor = [UIColor grayColor];
62   - }
63   - return _imageView;
64   -}
65   -
66   -- (UILabel *)title
67   -{
68   - if (!_title) {
69   - _title = [[UILabel alloc] initWithFrame:CGRectMake(_x, self.imageView.bottom+7, self.contentView.width-10, 12)];
70   - _title.font = [UIFont systemFontOfSize:14];
71   - _title.textColor = [UIColor blackColorCNLive];
72   - }
73   - return _title;
74   -}
75   -
76   -- (UILabel *)detail
77   -{
78   - if (!_detail) {
79   - _detail = [[UILabel alloc] initWithFrame:CGRectMake(_x, self.title.bottom+7, self.contentView.width-10, 11)];
80   - _detail.font = [UIFont systemFontOfSize:12];
81   - _detail.textColor = [UIColor grayColorCNLive];
82   - }
83   - return _detail;
84   -}
85   -
86   -- (UIImageView *)typeImage
87   -{
88   - if (!_typeImage) {
89   - _typeImage = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 39, 39)];
90   - }
91   - return _typeImage;
92   -}
93   -
94   -@end
LiveVideoCloud/Classes/Sections/HomePageSections/LVCBqWqXgModel.h deleted 100644 → 0
1   -//
2   -// LVCBqWqXgModel.h
3   -// LiveVideoCloud
4   -//
5   -// Created by cnliveJunBo on 17/6/20.
6   -// Copyright © 2017年 cnlive. All rights reserved.
7   -//
8   -
9   -#import "BaseModel.h"
10   -
11   -@interface LVCBqWqXgModel : BaseModel
12   -
13   -// 本期看点、往期回看、相关视频、相关明星 公共属性
14   -@property (nonatomic, copy)NSString *title;
15   -@property (nonatomic, copy)NSString *img;
16   -// 本期看点、往期回看、相关视频 公共属性
17   -@property (nonatomic, copy)NSString *mediaId;
18   -@property (nonatomic, copy)NSString *docSubTitle;
19   -// 相关视频、相关明星 公共属性
20   -@property (nonatomic, copy)NSString *docID;
21   -@property (nonatomic, copy)NSString *type;
22   -// 相关视频
23   -@property (nonatomic, copy)NSString *MAM_PosterUrl;
24   -@property (nonatomic, copy)NSString *MAM_SmallPosterUrl;
25   -@property (nonatomic, copy)NSString *docDescription;
26   -@property (nonatomic, copy)NSString *vipFlag;
27   -@property (nonatomic, copy)NSString *MAM_BigPostUrl;
28   -// 相关明星
29   -@property (nonatomic, copy)NSString *support;
30   -@property (nonatomic, copy)NSString *voteRule;
31   -
32   -// 用于判断播放底页里本期看点、往期回看、相关视频中,播放的视频是否高亮显示
33   -@property (nonatomic, assign)BOOL isPlaying;
34   -@property (nonatomic, copy)NSString *module;
35   -
36   -@end
LiveVideoCloud/Classes/Sections/HomePageSections/LVCBqWqXgModel.m deleted 100644 → 0
1   -//
2   -// LVCBqWqXgModel.m
3   -// LiveVideoCloud
4   -//
5   -// Created by cnliveJunBo on 17/6/20.
6   -// Copyright © 2017年 cnlive. All rights reserved.
7   -//
8   -
9   -#import "LVCBqWqXgModel.h"
10   -
11   -@implementation LVCBqWqXgModel
12   -
13   -@end
LiveVideoCloud/Classes/Sections/HomePageSections/LVCChannelDetailModel.h deleted 100644 → 0
1   -//
2   -// LVCChannelDetailModel.h
3   -// LiveVideoCloud
4   -//
5   -// Created by cnliveJunBo on 17/6/20.
6   -// Copyright © 2017年 cnlive. All rights reserved.
7   -//
8   -
9   -#import "BaseModel.h"
10   -
11   -@interface LVCChannelDetailModel : BaseModel
12   -
13   -@property (nonatomic, strong)NSString *cid;
14   -@property (nonatomic, strong)NSString *title;
15   -@property (nonatomic, strong)NSString *channelType;
16   -@property (nonatomic, strong)NSArray *programs;
17   -@property (nonatomic, strong)NSString *categoryType;
18   -
19   -@end
LiveVideoCloud/Classes/Sections/HomePageSections/LVCChannelDetailModel.m deleted 100644 → 0
1   -//
2   -// LVCChannelDetailModel.m
3   -// LiveVideoCloud
4   -//
5   -// Created by cnliveJunBo on 17/6/20.
6   -// Copyright © 2017年 cnlive. All rights reserved.
7   -//
8   -
9   -#import "LVCChannelDetailModel.h"
10   -
11   -@implementation LVCChannelDetailModel
12   -
13   -@end
LiveVideoCloud/Classes/Sections/HomePageSections/LVCChannelPagingView.h deleted 100644 → 0
1   -//
2   -// LVCChannelPagingView.h
3   -// LiveVideoCloud
4   -//
5   -// Created by cnliveJunBo on 17/6/19.
6   -// Copyright © 2017年 cnlive. All rights reserved.
7   -//
8   -
9   -#import <UIKit/UIKit.h>
10   -
11   -@interface LVCChannelPagingView : UIView
12   -
13   -@property (nonatomic, strong) LVCHomePageListModel *model;
14   -
15   -@end
LiveVideoCloud/Classes/Sections/HomePageSections/LVCChannelPagingView.m deleted 100644 → 0
1   -//
2   -// LVCChannelPagingView.m
3   -// LiveVideoCloud
4   -//
5   -// Created by cnliveJunBo on 17/6/19.
6   -// Copyright © 2017年 cnlive. All rights reserved.
7   -//
8   -
9   -#import "LVCChannelPagingView.h"
10   -#import "LVCMainHeaderCollectionReusableView.h"
11   -#import "LVCSectionHeaderCollectionReusableView.h"
12   -#import "LVCMainHorizontalCollectionViewCell.h"
13   -#import "JBSearchView.h"
14   -
15   -static NSString *mainHeaderId = @"mainHeader";
16   -static NSString *SectionHeaderId = @"SectionHeader";
17   -static NSString *MainHorizontalCellId = @"MainHorizontalCell";
18   -
19   -@interface LVCChannelPagingView() <UICollectionViewDelegate, UICollectionViewDataSource, UICollectionViewDelegateFlowLayout> {
20   -
21   - BOOL _hasSearchBox; //是否显示搜索框
22   - NSArray *_searchColumnArray;
23   - NSMutableArray *_banners;
24   - NSMutableArray *_marquees;
25   - NSMutableArray *_channels;
26   - LVCMainHeaderCollectionReusableView *_mainHeader;
27   - CGFloat _collectionOffsetY;
28   -}
29   -
30   -@property (nonatomic, strong)UICollectionView *collectionView;
31   -//@property (nonatomic, strong)UIView *searchBackground;
32   -@property (nonatomic, strong)JBSearchView *searchView;
33   -//@property (nonatomic, strong)UIButton *searchBtn;
34   -@property (nonatomic, strong)UIView *searchLine;
35   -@property (nonatomic, strong)UILabel *searchHotLab;
36   -
37   -@end
38   -
39   -@implementation LVCChannelPagingView
40   -
41   -- (instancetype)initWithFrame:(CGRect)frame
42   -{
43   - self = [super initWithFrame:frame];
44   - if (self) {
45   - [self addSubview:self.collectionView];
46   - _banners = [[NSMutableArray alloc] init];
47   - _marquees = [[NSMutableArray alloc] init];
48   - _channels = [[NSMutableArray alloc] init];
49   - }
50   - return self;
51   -}
52   -
53   -- (void)setModel:(LVCHomePageListModel *)model {
54   -
55   - if (_model != model) {
56   - _model = model;
57   - }
58   - [self requestAppindex];
59   -}
60   -
61   -#pragma mark - 请求数据
62   -- (void)requestAppindex {
63   -
64   - NSString *uid;
65   - if ([UserTools isLogin]) {
66   - uid = [UserInformationModel manager].uid;
67   - } else {
68   - uid = [NSString stringWithFormat:@"%u", arc4random()%3];
69   - }
70   - NSString *tm = [NSString stringWithFormat:@"%u_%@", arc4random()%10, uid];
71   -
72   - NSDictionary *parameter = @{@"cid": self.model.cid ? self.model.cid : @"",
73   - @"tm": tm};
74   -
75   - NSString *url;
76   - if ([self.model.cid isEqualToString:@"tj/"]) {
77   - url = Appindexpage;
78   - } else {
79   - url = Appindex;
80   - }
81   -
82   - [[AFHTTPRequestOperationManager manager] GET:url parameters:[self addParameters:parameter] success:^(AFHTTPRequestOperation *operation, id responseObject) {
83   -
84   - responseObject = [responseObject validatedDictionary];
85   -
86   - _hasSearchBox = [responseObject[@"searchCategory"] isEqualToString:@"false"] ? NO : YES;
87   -
88   - self.searchHotLab.text = responseObject[@"placeHolder"];
89   -
90   - //是否显示搜索旁边的分类
91   - _searchColumnArray = responseObject[@"searchColumn"];
92   -
93   - if ([Tools isArray:_searchColumnArray]) {
94   -
95   - // 搜索旁的分类
96   - } else {
97   -
98   -// self.searchBtn.width = KScreenWidth - 20;
99   - }
100   -
101   - if (responseObject[@"banner"] && [responseObject[@"banner"] isKindOfClass:[NSArray class]]) {
102   - for (NSDictionary *dic in responseObject[@"banner"]) {
103   - LVCBannerAndMarqueeModel *model = [LVCBannerAndMarqueeModel modelWithDic:dic];
104   - if (model) {
105   - [_banners addObject:model];
106   - }
107   - }
108   - }
109   - if (responseObject[@"marquee"] && [responseObject[@"marquee"] isKindOfClass:[NSArray class]]) {
110   - for (NSDictionary *dic in responseObject[@"marquee"]) {
111   - LVCBannerAndMarqueeModel *model = [LVCBannerAndMarqueeModel modelWithDic:dic];
112   - if (model) {
113   - [_marquees addObject:model];
114   - }
115   - }
116   - }
117   - if (responseObject[@"channels"] && [responseObject[@"channels"] isKindOfClass:[NSArray class]]) {
118   -
119   - for (NSDictionary *dic in responseObject[@"channels"]) {
120   - LVCChannelDetailModel *model = [LVCChannelDetailModel modelWithDic:dic];
121   - NSMutableArray *programs = [[NSMutableArray alloc] init];
122   -
123   - if (dic[@"programs"] && [dic[@"programs"] isKindOfClass:[NSArray class]]) {
124   - for (NSDictionary *program in dic[@"programs"]) {
125   - id programModel;
126   - if ([model.channelType isEqualToString:@"M"]) {
127   - programModel = [LVCBqWqXgModel modelWithDic:program];
128   - } else {
129   - programModel = [LVCBannerAndMarqueeModel modelWithDic:program];
130   - }
131   - if (programModel) {
132   - [programs addObject:programModel];
133   - }
134   - }
135   - }
136   - model.programs = [[NSArray alloc] initWithArray:programs];
137   - if (model && [Tools isArray:model.programs]) {
138   - [_channels addObject:model];
139   - }
140   - }
141   - }
142   - [self.collectionView reloadData];
143   -
144   - } failure:^(AFHTTPRequestOperation *operation, NSError *error) {
145   -
146   -
147   - }];
148   -}
149   -
150   -#pragma mark - UICollectionViewDelegate !!!!!!!!!!!!!!!!!!!!!!!!!
151   -- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
152   -
153   - if (_hasSearchBox) {
154   -
155   - if (scrollView == self.collectionView) {
156   -
157   - if (scrollView.contentOffset.y <= 0) {
158   -
159   - self.searchView.y = 0;
160   - if (_channels.count > 0) {
161   - [_mainHeader addSubview:self.searchView];
162   - } else {
163   - [self.collectionView addSubview:self.searchView];
164   - }
165   - _collectionOffsetY = scrollView.contentOffset.y;
166   - } else {
167   -
168   - if (scrollView.contentOffset.y >= 45) {
169   - if (self.searchView.superview != self) {
170   - self.searchView.y = -45;
171   - [self.searchView addSubview:self.searchLine];
172   - [self addSubview:self.searchView];
173   - }
174   - }
175   - if (scrollView.contentOffset.y-_collectionOffsetY > 0) {
176   - _collectionOffsetY = scrollView.contentOffset.y;
177   - [UIView animateWithDuration:0.2 animations:^{
178   - self.searchView.y = -45;
179   - }];
180   - } else {
181   - _collectionOffsetY = scrollView.contentOffset.y;
182   - [UIView animateWithDuration:0.2 animations:^{
183   - self.searchView.y = 0;
184   - }];
185   - }
186   - }
187   - }
188   - }
189   -}
190   -
191   -- (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath {
192   -
193   -
194   -}
195   -
196   -#pragma mark - UICollectionViewDataSource !!!!!!!!!!!!!!!!!!!!!!!!!
197   -- (NSInteger)numberOfSectionsInCollectionView:(UICollectionView *)collectionView {
198   -
199   - return 4;
200   -}
201   -
202   -- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section {
203   -
204   - return 6;
205   -}
206   -
207   -- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath {
208   -
209   - LVCMainHorizontalCollectionViewCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:MainHorizontalCellId forIndexPath:indexPath];
210   - cell.backgroundColor = [UIColor blueColor];
211   - return cell;
212   -}
213   -
214   -- (UICollectionReusableView *)collectionView:(UICollectionView *)collectionView viewForSupplementaryElementOfKind:(NSString *)kind atIndexPath:(NSIndexPath *)indexPath {
215   -
216   - if (indexPath.section == 0) {
217   - _mainHeader = [collectionView dequeueReusableSupplementaryViewOfKind:UICollectionElementKindSectionHeader withReuseIdentifier:mainHeaderId forIndexPath:indexPath];
218   - _mainHeader.backgroundColor = [UIColor redColor];
219   - if (!self.searchView.superview) {
220   - [_mainHeader addSubview:self.searchView];
221   - }
222   - _mainHeader.banners = _banners;
223   - return _mainHeader;
224   - } else {
225   - LVCSectionHeaderCollectionReusableView *view = [collectionView dequeueReusableSupplementaryViewOfKind:UICollectionElementKindSectionHeader withReuseIdentifier:SectionHeaderId forIndexPath:indexPath];
226   - view.backgroundColor = [UIColor yellowColor];
227   -
228   - LVCChannelDetailModel *model = [[LVCChannelDetailModel alloc] init];
229   - model.title = [NSString stringWithFormat:@"这是第%ld组",(long)indexPath.section];
230   - view.model = model;
231   -
232   - return view;
233   - }
234   - return nil;
235   -}
236   -
237   -#pragma mark - UICollectionViewDelegateFlowLayout !!!!!!!!!!!!!!!!!!!!!!!!!
238   -- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath {
239   -
240   - return CGSizeMake(KScreenWidth*0.4, 80);
241   -}
242   -
243   -- (UIEdgeInsets)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout insetForSectionAtIndex:(NSInteger)section {
244   -
245   - if (section == 0) {
246   - return UIEdgeInsetsMake(0, 0, 0, 0);
247   - }
248   - return UIEdgeInsetsMake(5, 10, 5, 4);
249   -}
250   -
251   -- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout referenceSizeForHeaderInSection:(NSInteger)section {
252   -
253   - if (section == 0) {
254   - return CGSizeMake(KScreenWidth, 300);
255   - } else {
256   - return CGSizeMake(KScreenWidth, 47);
257   - }
258   -}
259   -
260   -#pragma mark - GetMethod !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
261   -- (UICollectionView *)collectionView {
262   -
263   - if (!_collectionView) {
264   -
265   - UICollectionViewFlowLayout *layout = [[UICollectionViewFlowLayout alloc] init];
266   - layout.minimumLineSpacing = 10;
267   - layout.minimumInteritemSpacing = 0;
268   -
269   - _collectionView = [[UICollectionView alloc] initWithFrame:CGRectMake(0, 0, KScreenWidth, KScreenHeight - 64 - 49) collectionViewLayout:layout];
270   - _collectionView.delegate = self;
271   - _collectionView.dataSource = self;
272   - _collectionView.backgroundColor = [UIColor whiteColor];
273   - [_collectionView registerClass:[LVCMainHeaderCollectionReusableView class] forSupplementaryViewOfKind:UICollectionElementKindSectionHeader withReuseIdentifier:mainHeaderId];
274   -
275   - [_collectionView registerClass:[LVCSectionHeaderCollectionReusableView class] forSupplementaryViewOfKind:UICollectionElementKindSectionHeader withReuseIdentifier:SectionHeaderId];
276   -
277   - [_collectionView registerClass:[LVCMainHorizontalCollectionViewCell class] forCellWithReuseIdentifier:MainHorizontalCellId];
278   - }
279   - return _collectionView;
280   -}
281   -
282   -- (JBSearchView *)searchView {
283   -
284   - if (!_searchView) {
285   - _searchView = [[JBSearchView alloc] initWithFrame:CGRectMake(0, 0, KScreenWidth, 45)];
286   - _searchView.backgroundColor = [UIColor backgroundColor];
287   -
288   - NSMutableArray *arrayM = [[NSMutableArray alloc] init];
289   - NSDictionary *dict1 = @{@"name":@"liveShow"};
290   - [arrayM addObject:dict1];
291   - NSDictionary *dict2 = @{@"name":@"全部"};
292   - [arrayM addObject:dict2];
293   - _searchView.sortArray = arrayM;
294   -
295   - }
296   - return _searchView;
297   -}
298   -
299   -- (UIView *)searchLine {
300   -
301   - if (!_searchLine) {
302   - _searchLine = [[UIView alloc] initWithFrame:CGRectMake(0, 44.5, KScreenWidth, 0.5)];
303   - _searchLine.backgroundColor = [UIColor navigationLineColor];
304   - }
305   - return _searchLine;
306   -}
307   -
308   -//- (UILabel *)searchHotLab {
309   -//
310   -// if (!_searchHotLab) {
311   -// _searchHotLab = [[UILabel alloc] initWithFrame:CGRectMake(35, 0, self.searchBtn.width-45, self.searchBtn.height)];
312   -// _searchHotLab.textColor = [UIColor grayColorCNLive];
313   -// _searchHotLab.font = [UIFont systemFontOfSize:14];
314   -// }
315   -// return _searchHotLab;
316   -//}
317   -
318   -// ------------------------------------------分割线---------------------------------------------------
319   -- (NSDictionary *)addParameters:(NSDictionary *)dict {
320   -
321   - if (![dict isKindOfClass:[NSDictionary class]]) {
322   - return dict;
323   - }
324   - if (!dict) {
325   - return @{@"appid": JBAppId, @"plat": @"i", @"version": JBAppVersion};
326   - } else {
327   - NSMutableDictionary *dic = [[NSMutableDictionary alloc] initWithDictionary:dict];
328   - [dic addEntriesFromDictionary:@{@"appid": JBAppId, @"plat": @"i", @"version": JBAppVersion}];
329   - return [[NSDictionary alloc] initWithDictionary:dic];
330   - }
331   -}
332   -
333   -@end
LiveVideoCloud/Classes/Sections/HomePageSections/LVCHomePageListModel.h deleted 100644 → 0
1   -//
2   -// LVCHomePageListModel.h
3   -// LiveVideoCloud
4   -//
5   -// Created by cnliveJunBo on 17/6/12.
6   -// Copyright © 2017年 cnlive. All rights reserved.
7   -//
8   -
9   -#import "BaseModel.h"
10   -
11   -@interface LVCHomePageListModel : NSObject
12   -
13   -@property (nonatomic, copy) NSString *cid;
14   -@property (nonatomic, copy) NSString *img;
15   -@property (nonatomic, copy) NSString *title;
16   -@property (nonatomic, copy) NSString *type;
17   -@property (nonatomic, copy) NSString *url;
18   -
19   -@end
LiveVideoCloud/Classes/Sections/HomePageSections/LVCHomePageListModel.m deleted 100644 → 0
1   -//
2   -// LVCHomePageListModel.m
3   -// LiveVideoCloud
4   -//
5   -// Created by cnliveJunBo on 17/6/12.
6   -// Copyright © 2017年 cnlive. All rights reserved.
7   -//
8   -
9   -#import "LVCHomePageListModel.h"
10   -
11   -@implementation LVCHomePageListModel
12   -
13   -
14   -
15   -@end
LiveVideoCloud/Classes/Sections/HomePageSections/LVCHomePageViewController.h deleted 100644 → 0
1   -//
2   -// LVCHomePageViewController.h
3   -// LiveVideoCloud
4   -//
5   -// Created by cnliveJunBo on 17/6/9.
6   -// Copyright © 2017年 cnlive. All rights reserved.
7   -//
8   -
9   -#import "BaseViewController.h"
10   -
11   -@interface LVCHomePageViewController : BaseViewController
12   -
13   -@end
LiveVideoCloud/Classes/Sections/HomePageSections/LVCHomePageViewController.m deleted 100644 → 0
1   -//
2   -// LVCHomePageViewController.m
3   -// LiveVideoCloud
4   -//
5   -// Created by cnliveJunBo on 17/6/9.
6   -// Copyright © 2017年 cnlive. All rights reserved.
7   -//
8   -
9   -#import "LVCHomePageViewController.h"
10   -#import "LVCChannelPagingView.h"
11   -
12   -@interface LVCHomePageViewController ()<V8HorizontalPickerViewDataSource, V8HorizontalPickerViewDelegate,MHPagingScrollViewDelegate,UIScrollViewDelegate> {
13   -
14   - NSMutableArray <LVCHomePageListModel *> *_titleArr;
15   - CGFloat _titleSpace;
16   -}
17   -
18   -@property (nonatomic, strong)V8HorizontalPickerView *titleView;
19   -@property (nonatomic, strong)MHPagingScrollView *pageView;
20   -@property (nonatomic, strong)UIButton *reloadBtn;
21   -@property (nonatomic, strong)UILabel *reloadLab;
22   -@end
23   -
24   -@implementation LVCHomePageViewController
25   -
26   -- (void)viewWillAppear:(BOOL)animated
27   -{
28   - [super viewWillAppear:animated];
29   - [self pagingScrollView:self.pageView pageForIndex:self.pageView.indexOfSelectedPage];
30   -}
31   -
32   -- (void)viewDidLoad {
33   - [super viewDidLoad];
34   -
35   -// [[NSNotificationCenter defaultCenter] addObserver:self
36   -// selector:@selector(appBecomeActive)
37   -// name:UIApplicationDidBecomeActiveNotification
38   -// object:nil];
39   -
40   - _titleArr = [[NSMutableArray alloc] init];
41   -
42   - [self getChannelList];
43   -
44   - self.navigationItem.titleView = self.titleView;
45   - [self.view addSubview:self.pageView];
46   - [_pageView reloadPages];
47   - [_titleView reloadData];
48   -}
49   -
50   -#pragma mark - 请求频道列表
51   -- (void)getChannelList {
52   -
53   - NSDictionary *para = @{@"appid": @"hdtv",
54   - @"plat": @"i",
55   - @"version": @"5.5.2.052420"}; //[NSDictionary CommonParameters]
56   -
57   - MBProgressHUD *waitHUD = [Tools showActivityHudInView:self.view withString:@"加载中..."];
58   - [[AFHTTPRequestOperationManager manager] GET:AllChannellist parameters:para success:^(AFHTTPRequestOperation *operation, id responseObject) {
59   -
60   - [waitHUD hide:NO];
61   - [self.reloadBtn removeFromSuperview];
62   - responseObject = [responseObject validatedDictionary];
63   -
64   - if ([[NSString stringWithFormat:@"%@",responseObject[@"errorCode"]] isEqualToString:@"0"]) {
65   -
66   - if ([Tools isArray:responseObject[@"channels"]]) {
67   -
68   - for (NSDictionary *dict in responseObject[@"channels"]) {
69   -
70   - LVCHomePageListModel *model = [[LVCHomePageListModel alloc] init];
71   - [model setValuesForKeysWithDictionary:dict];
72   - [_titleArr addObject:model];
73   - }
74   -
75   - CGFloat width = 0;
76   - for (LVCHomePageListModel *model in _titleArr) {
77   - CGSize size = [model.title sizeWithAttributes:@{NSFontAttributeName:self.titleView.elementFont}];
78   - width += size.width+5;
79   - }
80   - if (width < self.titleView.width) {
81   - _titleSpace = (self.titleView.width-width)/_titleArr.count;
82   - } else {
83   - _titleSpace = 0;
84   - }
85   -
86   - [_titleView reloadData];
87   - [_pageView reloadPages];
88   -
89   - // /*-----------------列表数据处理----------------*/
90   - // [CNHDTVStatManager PVStatForPage:@"tj/" userID:[UserInformationModel manager].uid];
91   - // NSMutableArray *normalArray = [[NSMutableArray alloc] initWithArray:[[NSUserDefaults standardUserDefaults] objectForKey:NormalChannelArray]];
92   - // NSMutableArray *otherArray = [[NSMutableArray alloc] initWithArray:[[NSUserDefaults standardUserDefaults] objectForKey:OtherChannelArray]];
93   - //
94   - // NSArray *channelsArray = responseObject[@"channels"];
95   -
96   -
97   -// /*-----------------根据频道列表网络数据的变化来对本地数据进行处理----------------*/
98   - // //将新增的频道添加到常用频道
99   - // for (NSDictionary *dic in channelsArray) {
100   - // if (![normalArray containsObject:dic]) {
101   - // [normalArray addObject:dic];
102   - // }
103   - // }
104   - //
105   - // //从常用频道和其他频道中删除网络数据中没有的数据
106   - // NSMutableArray *tempNormalArray = [normalArray mutableCopy];
107   - // for (NSDictionary *dic in tempNormalArray) {
108   - // if (![channelsArray containsObject:dic]) {
109   - // [normalArray removeObject:dic];
110   - // }
111   - // }
112   - //
113   - // NSMutableArray *tempOtherArray = [otherArray mutableCopy];
114   - // for (NSDictionary *dic in tempOtherArray) {
115   - // if (![channelsArray containsObject:dic]) {
116   - // [otherArray removeObject:dic];
117   - // }
118   - // }
119   - //
120   - // [[NSUserDefaults standardUserDefaults] setObject:normalArray forKey:NormalChannelArray];
121   - // [[NSUserDefaults standardUserDefaults] setObject:otherArray forKey:OtherChannelArray];
122   - // [[NSUserDefaults standardUserDefaults] synchronize];
123   -
124   - }
125   - else {
126   -
127   - [Tools showHUDInView:self.view withString:@"获取数据失败" autoHide:YES];
128   - }
129   -
130   -
131   - } else {
132   -
133   - [Tools showHUDInView:self.view withString:@"获取数据失败" autoHide:YES];
134   - }
135   -
136   - self.reloadLab.text = @"暂无数据";
137   -
138   - } failure:^(AFHTTPRequestOperation *operation, NSError *error) {
139   -
140   - [waitHUD hide:NO];
141   - [self.reloadBtn removeFromSuperview];
142   - self.reloadLab.text = @"您好像掉线了";
143   - }];
144   -}
145   -
146   -#pragma mark - V8HorizontalPickerViewDataSource
147   -
148   -- (NSInteger)numberOfElementsInHorizontalPickerView:(V8HorizontalPickerView *)picker
149   -{
150   - return _titleArr.count;
151   -}
152   -
153   -#pragma mark - V8HorizontalPickerViewDelegate
154   -
155   -- (NSString *)horizontalPickerView:(V8HorizontalPickerView *)picker titleForElementAtIndex:(NSInteger)index
156   -{
157   - return _titleArr[index].title;
158   -}
159   -
160   -- (NSInteger)horizontalPickerView:(V8HorizontalPickerView *)picker widthForElementAtIndex:(NSInteger)index
161   -{
162   -
163   - if (_titleSpace != 0) {
164   -
165   - CGSize size = [_titleArr[index].title sizeWithAttributes:@{NSFontAttributeName:self.titleView.elementFont}];
166   - return size.width +_titleSpace;
167   - } else {
168   -
169   - CGSize size = [_titleArr[index].title sizeWithAttributes:@{NSFontAttributeName:self.titleView.elementFont}];
170   - return size.width + 15;
171   - }
172   -}
173   -
174   -- (void)horizontalPickerView:(V8HorizontalPickerView *)picker didSelectElementAtIndex:(NSInteger)index
175   -{
176   - if (self.pageView.indexOfSelectedPage != index) {
177   - [self.pageView selectPageAtIndex:index animated:YES];
178   - }
179   -}
180   -
181   -#pragma mark - UIScrollViewDelegate
182   -
183   -- (void)scrollViewDidScroll:(UIScrollView *)scrollView
184   -{
185   -
186   - if (self.titleView.currentSelectedIndex != self.pageView.indexOfSelectedPage) {
187   -
188   - [self.titleView scrollToElement:self.pageView.indexOfSelectedPage animated:YES];
189   -
190   - }
191   - [self.pageView scrollViewDidScroll];
192   -
193   -}
194   -
195   -#pragma mark - MHPagingScrollViewDelegate
196   -
197   -- (NSUInteger)numberOfPagesInPagingScrollView:(MHPagingScrollView *)pagingScrollView
198   -{
199   - return _titleArr.count;
200   -}
201   -
202   -- (UIView *)pagingScrollView:(MHPagingScrollView *)pagingScrollView pageForIndex:(NSUInteger)index
203   -{
204   - LVCHomePageListModel *model = [_titleArr safetyObjectAtIndex:index];
205   -
206   - if ([model.type isEqualToString:@"channel"] || [model.type isEqualToString:@"tuijian"]) {
207   -
208   - LVCChannelPagingView *channelView = (LVCChannelPagingView *)[pagingScrollView pageViewByIndex:index];
209   - if (!channelView) {
210   - channelView = [[LVCChannelPagingView alloc] initWithFrame:self.pageView.bounds];
211   - channelView.model = _titleArr[index];
212   - }
213   - return channelView;
214   -
215   - } else if ([model.type isEqualToString:@"news"]) {
216   -
217   - UIView *view2 = [pagingScrollView pageViewByIndex:index];
218   - if (!view2) {
219   - view2 = [[UIView alloc] init];
220   - }
221   - view2.backgroundColor = [UIColor redColor];
222   - return view2;
223   -// LVCUGCLiveListView *liveListView = (LVCUGCLiveListView *)[pagingScrollView pageViewByIndex:index];
224   -// if (!liveListView) {
225   -// liveListView = [[LVCUGCLiveListView alloc] initWithFrame:CGRectMake(0, 64, SCREEN_WIDTH, SCREEN_HEIGHT - 114)];
226   -// } else {
227   -// [liveListView isNeedToRefresh];
228   -// }
229   -// liveListView.scrollToTop = YES;
230   -// return liveListView;
231   - } else if ([model.type isEqualToString:@"link"]) {
232   -
233   - UIView *view1 = [pagingScrollView pageViewByIndex:index];
234   - if (!view1) {
235   - view1 = [[UIView alloc] init];
236   - }
237   - view1.backgroundColor = [UIColor yellowColor];
238   - return view1;
239   - }
240   -
241   - return nil;
242   -}
243   -
244   -#pragma mark - Action !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
245   -
246   -#pragma mark - GetMetohd !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
247   -- (V8HorizontalPickerView *)titleView
248   -{
249   - if (!_titleView) {
250   -
251   - _titleView = [[V8HorizontalPickerView alloc] initWithFrame:CGRectMake(0, 0, SCREEN_WIDTH-120, 44) home:YES];
252   - _titleView.textColor = [UIColor colorWithHexString:@"#7e7e7d"];
253   - _titleView.selectedTextColor = [UIColor blackColorCNLive];
254   - _titleView.delegate = self;
255   - _titleView.dataSource = self;
256   - _titleView.elementFont = [UIFont boldSystemFontOfSize:18];
257   - _titleView.scrollView.scrollsToTop = NO;
258   -
259   - }
260   - return _titleView;
261   -}
262   -
263   -- (MHPagingScrollView *)pageView
264   -{
265   - if (!_pageView) {
266   - _pageView = [[MHPagingScrollView alloc] initWithFrame:CGRectMake(0, 0, SCREEN_WIDTH, SCREEN_HEIGHT-49)];
267   - _pageView.pagingDelegate = self;
268   - _pageView.delegate = self;
269   - _pageView.scrollsToTop = NO;
270   - _pageView.bounces = NO;
271   - }
272   - return _pageView;
273   -}
274   -
275   -- (UIButton *)reloadBtn
276   -{
277   - if (!_reloadBtn) {
278   - _reloadBtn = [self getReloadBtn];
279   - _reloadBtn.frame = self.view.bounds;
280   - [_reloadBtn addTarget:self action:@selector(getChannelList) forControlEvents:UIControlEventTouchUpInside];
281   - [_reloadBtn addSubview:self.reloadLab];
282   - }
283   - return _reloadBtn;
284   -}
285   -
286   -- (UILabel *)reloadLab
287   -{
288   - if (!_reloadLab) {
289   - _reloadLab = [self getReloadLab];
290   - _reloadLab.frame = CGRectMake(0, self.view.height/2+30, self.view.width, 20);
291   - }
292   - return _reloadLab;
293   -}
294   -
295   -// ------------------------------------------分割线---------------------------------------------------
296   -
297   -- (nonnull UIButton *)getReloadBtn
298   -{
299   - UIButton *reloadBtn = [UIButton buttonWithType:UIButtonTypeCustom];
300   - reloadBtn.frame = CGRectMake(0, 0, 200, 200);
301   - [reloadBtn setImage:[UIImage imageNamed:@"load_04"] forState:UIControlStateNormal];
302   - [reloadBtn setImage:[UIImage imageNamed:@"load_04"] forState:UIControlStateHighlighted];
303   - return reloadBtn;
304   -}
305   -
306   -- (nonnull UILabel *)getReloadLab
307   -{
308   - UILabel *reloadLab = [[UILabel alloc] initWithFrame:CGRectMake(0, 130, 200, 20)];
309   - reloadLab.textAlignment = NSTextAlignmentCenter;
310   - reloadLab.textColor = [UIColor colorWithHexString:@"bdbcbc"];
311   - return reloadLab;
312   -}
313   -
314   -- (void)didReceiveMemoryWarning {
315   - [super didReceiveMemoryWarning];
316   - // Dispose of any resources that can be recreated.
317   -}
318   -
319   -@end
LiveVideoCloud/Classes/Sections/HomePageSections/LVCMainHeaderCollectionReusableView.h deleted 100644 → 0
1   -//
2   -// LVCMainHeaderCollectionReusableView.h
3   -// LiveVideoCloud
4   -//
5   -// Created by cnliveJunBo on 17/6/20.
6   -// Copyright © 2017年 cnlive. All rights reserved.
7   -//
8   -
9   -#import <UIKit/UIKit.h>
10   -
11   -@interface LVCMainHeaderCollectionReusableView : UICollectionReusableView
12   -
13   -@property (nonatomic, assign) BOOL live;
14   -@property (nonatomic, strong) NSArray *banners;
15   -@property (nonatomic, strong) NSArray *marquees;
16   -
17   -@end
LiveVideoCloud/Classes/Sections/HomePageSections/LVCMainHeaderCollectionReusableView.m deleted 100644 → 0
1   -//
2   -// LVCMainHeaderCollectionReusableView.m
3   -// LiveVideoCloud
4   -//
5   -// Created by cnliveJunBo on 17/6/20.
6   -// Copyright © 2017年 cnlive. All rights reserved.
7   -//
8   -
9   -#import "LVCMainHeaderCollectionReusableView.h"
10   -#import "JBBannerView.h"
11   -#import "JBAutoRollTableView.h"
12   -
13   -@interface LVCMainHeaderCollectionReusableView()
14   -
15   -@property (nonatomic, strong) JBBannerView *bannerView;
16   -@property (nonatomic, strong) JBAutoRollTableView *rollTableView;
17   -
18   -@end
19   -
20   -@implementation LVCMainHeaderCollectionReusableView
21   -
22   -- (instancetype)initWithFrame:(CGRect)frame
23   -{
24   - self = [super initWithFrame:frame];
25   - if (self) {
26   - [self addSubview:self.bannerView];
27   - [self addSubview:self.rollTableView];
28   - }
29   - return self;
30   -}
31   -
32   -- (void)setBanners:(NSArray *)banners {
33   -
34   - if (_banners != banners) {
35   - _banners = banners;
36   - }
37   - _bannerView.bannerArray = banners;
38   -}
39   -
40   -#pragma mark - GetMethod !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
41   -- (JBBannerView *)bannerView {
42   -
43   - if (!_bannerView) {
44   - _bannerView = [[JBBannerView alloc] initWithFrame:CGRectMake(0, 70, self.bounds.size.width, self.bounds.size.width / 2 + 10)];
45   - _bannerView.backgroundColor = [UIColor purpleColor];
46   - }
47   - return _bannerView;
48   -}
49   -
50   -- (JBAutoRollTableView *)rollTableView {
51   -
52   - if (!_rollTableView) {
53   - _rollTableView = [[JBAutoRollTableView alloc] initWithFrame:CGRectMake(39, 250, KScreenWidth-40-25+6, 36) style:UITableViewStylePlain];
54   -
55   - NSMutableArray *arrayM = [[NSMutableArray alloc] init];
56   - ProgramModel *model1 = [[ProgramModel alloc] init];
57   - model1.title = @"嘉华大厦十大富豪榜";
58   - [arrayM addObject:model1];
59   - ProgramModel *model2 = [[ProgramModel alloc] init];
60   - model2.title = @"思考很久案发的感受";
61   - [arrayM addObject:model2];
62   - ProgramModel *model3 = [[ProgramModel alloc] init];
63   - model3.title = @"模拟电路罚款金额虽";
64   - [arrayM addObject:model3];
65   - _rollTableView.news = arrayM;
66   - }
67   - return _rollTableView;
68   -}
69   -
70   -@end
LiveVideoCloud/Classes/Sections/HomePageSections/LVCMainHorizontalCollectionViewCell.h deleted 100644 → 0
1   -//
2   -// LVCMainHorizontalCollectionViewCell.h
3   -// LiveVideoCloud
4   -//
5   -// Created by cnliveJunBo on 17/6/20.
6   -// Copyright © 2017年 cnlive. All rights reserved.
7   -//
8   -
9   -#import <UIKit/UIKit.h>
10   -
11   -@interface LVCMainHorizontalCollectionViewCell : UICollectionViewCell
12   -
13   -@end
LiveVideoCloud/Classes/Sections/HomePageSections/LVCMainHorizontalCollectionViewCell.m deleted 100644 → 0
1   -//
2   -// LVCMainHorizontalCollectionViewCell.m
3   -// LiveVideoCloud
4   -//
5   -// Created by cnliveJunBo on 17/6/20.
6   -// Copyright © 2017年 cnlive. All rights reserved.
7   -//
8   -
9   -#import "LVCMainHorizontalCollectionViewCell.h"
10   -
11   -@implementation LVCMainHorizontalCollectionViewCell
12   -
13   -@end
LiveVideoCloud/Classes/Sections/HomePageSections/LVCSectionHeaderCollectionReusableView.h deleted 100644 → 0
1   -//
2   -// LVCSectionHeaderCollectionReusableView.h
3   -// LiveVideoCloud
4   -//
5   -// Created by cnliveJunBo on 17/6/20.
6   -// Copyright © 2017年 cnlive. All rights reserved.
7   -//
8   -
9   -#import <UIKit/UIKit.h>
10   -
11   -@interface LVCSectionHeaderCollectionReusableView : UICollectionReusableView
12   -
13   -@property (nonatomic, strong)LVCChannelDetailModel *model;
14   -@property (nonatomic, assign)BOOL sort;
15   -@property (nonatomic, assign)BOOL live;
16   -@property (nonatomic, strong)NSString *channelId;
17   -@property (nonatomic, strong)NSString *channelName;
18   -
19   -@end
LiveVideoCloud/Classes/Sections/HomePageSections/LVCSectionHeaderCollectionReusableView.m deleted 100644 → 0
1   -//
2   -// LVCSectionHeaderCollectionReusableView.m
3   -// LiveVideoCloud
4   -//
5   -// Created by cnliveJunBo on 17/6/20.
6   -// Copyright © 2017年 cnlive. All rights reserved.
7   -//
8   -
9   -#import "LVCSectionHeaderCollectionReusableView.h"
10   -
11   -@interface LVCSectionHeaderCollectionReusableView()
12   -
13   -@property (nonatomic, strong)UIButton *button;
14   -@property (nonatomic, strong)UIImageView *arrow;
15   -
16   -@end
17   -
18   -@implementation LVCSectionHeaderCollectionReusableView
19   -
20   -- (instancetype)initWithFrame:(CGRect)frame
21   -{
22   - self = [super initWithFrame:frame];
23   - if (self) {
24   - UIView *intervalView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, self.width, 6)];
25   - intervalView.backgroundColor = [UIColor backgroundColor];
26   - [self addSubview:intervalView];
27   - [self addSubview:self.button];
28   - [self addSubview:self.arrow];
29   - }
30   - return self;
31   -}
32   -
33   -- (void)setModel:(LVCChannelDetailModel *)model {
34   - if (_model != model) {
35   - _model = model;
36   - }
37   - [self.button setTitle:[NSString stringWithFormat:@" %@", model.title] forState:UIControlStateNormal];
38   -}
39   -
40   -#pragma mark - ACtion !!!!!!!!!!!!!!!!!!!!!!!!!!
41   -- (void)buttonAction {
42   -
43   - NSLog(@"跳转更多!!!!!!!!!!!!!!");
44   -}
45   -
46   -#pragma mark - GetMethod !!!!!!!!!!!!!!!!!!!!!!!!
47   -- (UIButton *)button {
48   -
49   - if (!_button) {
50   - _button = [UIButton buttonWithType:UIButtonTypeCustom];
51   - _button.frame = CGRectMake(0, 6, self.frame.size.width, 47);
52   - [_button setTitleColor:[UIColor blackColorCNLive] forState:UIControlStateNormal];
53   - _button.contentHorizontalAlignment = UIControlContentHorizontalAlignmentLeft;
54   - [_button addTarget:self action:@selector(buttonAction) forControlEvents:UIControlEventTouchUpInside];
55   - _button.titleLabel.font = [UIFont boldSystemFontOfSize:18];
56   - }
57   - return _button;
58   -}
59   -
60   -- (UIImageView *)arrow {
61   -
62   - if (!_arrow) {
63   - _arrow = [[UIImageView alloc] initWithFrame:CGRectMake(KScreenWidth-5-15, 19, 15, 21)];
64   - _arrow.image = [UIImage imageNamed:@"gengduo"];
65   - }
66   - return _arrow;
67   -}
68   -
69   -@end
LiveVideoCloud/Classes/Sections/Mine/Controllers/LVCMineViewController.m
... ... @@ -37,7 +37,7 @@
37 37  
38 38 self.btnLeft.hidden = YES;
39 39  
40   - [UINavigationBar appearance].translucent = NO;
  40 + [UINavigationBar appearance].translucent = YES;
41 41 }
42 42  
43 43 - (void)setNavi
... ...
LiveVideoCloud/PrefixHeader.pch
... ... @@ -29,45 +29,31 @@
29 29 #import <CNLivePlayerSDK/CNLiveWebcastManager.h>
30 30 #import <CNLiveMsgTools/CNLiveMsgManager.h>
31 31 #import <CNLiveChatManager/CNLiveChatManager.h>
32   - #import "V8HorizontalPickerView.h"
33   - #import "MHPagingScrollView.h"
34   - #import "LVCHomePageListModel.h"
35   - #import "LVCBannerAndMarqueeModel.h"
36   -#include "LVCChannelDetailModel.h"
37   -#import "LVCBqWqXgModel.h"
38   -#import "LVCCommentModel.h"
39   -
40   -#import <CNLiveUserSystemSDK/CNLiveUserSystemCenter.h>
41   -
42   -#import "Common.h"
43   -#import "MJExtension.h"//
44   -#import "CNLiveMacro.h"//
45   -#import "NSNumber+ScaleHeight.h"//高度适配
46   -#import "AFNetworking.h"
47   -#import "UIImageView+WebCache.h"
48   -//#import "NSDictionary+Safety.h"
49   -#import "Tools.h"
50   -#import "MJRefresh.h"
51   -#import <ImageIO/ImageIO.h>//
52   -#import "UIImage+ScaleImageSize.h"//
53   -//#import "CNRefreshHeader.h"//
54   -#import "UIView+ViewController.h"
55   -//#import "MBProgressHUD.h"
56   -#import "SevenSwitch.h"
57   -#import "DESUtility.h"
58   -//#import "CNLiveXMPPMessage.h"
59   -#import "UserInformationModel.h"
60   -//#import "EncryptAndDecrypt.h"
61   -//#import "Utility.h"
62   -//#import "CNLiveShare.h"
63   -//#import "ShareObject.h"
64   -#import "NSString+UrlEncode.h"
65   -#import "NSDictionary+Safety.h"
66   -#import "UserTools.h"
67   -#import "UIImage+GIF.h"
68   -#import "ZXUIKit.h"//
69   -#import "UIButton+createButton.h"//
70   -#import "ProgramModel.h"
  32 + #import "LVCCommentModel.h"
  33 +
  34 + #import <CNLiveUserSystemSDK/CNLiveUserSystemCenter.h>
  35 +
  36 + #import "Common.h"
  37 + #import "MJExtension.h"
  38 + #import "CNLiveMacro.h"
  39 + #import "NSNumber+ScaleHeight.h"
  40 + #import "AFNetworking.h"
  41 + #import "UIImageView+WebCache.h"
  42 + #import "Tools.h"
  43 + #import "MJRefresh.h"
  44 + #import <ImageIO/ImageIO.h>
  45 + #import "UIImage+ScaleImageSize.h"
  46 + #import "UIView+ViewController.h"
  47 + #import "SevenSwitch.h"
  48 + #import "DESUtility.h"
  49 + #import "UserInformationModel.h"
  50 + #import "NSString+UrlEncode.h"
  51 + #import "NSDictionary+Safety.h"
  52 + #import "UserTools.h"
  53 + #import "UIImage+GIF.h"
  54 + #import "ZXUIKit.h"
  55 + #import "UIButton+createButton.h"
  56 + #import "ProgramModel.h"
71 57  
72 58  
73 59 #if TARGET_OS_IPHONE
... ...