Commit 3758957d577c973ffec5fe4eb65c466067f3a219
1 parent
1ac7bee4
推荐..数据请求
Showing
14 changed files
with
576 additions
and
15 deletions
LiveVideoCloud.xcodeproj/project.pbxproj
| @@ -198,6 +198,7 @@ | @@ -198,6 +198,7 @@ | ||
| 198 | D209AD711EC583D100D82E3B /* MineAccountController.m in Sources */ = {isa = PBXBuildFile; fileRef = D209AD701EC583D100D82E3B /* MineAccountController.m */; }; | 198 | D209AD711EC583D100D82E3B /* MineAccountController.m in Sources */ = {isa = PBXBuildFile; fileRef = D209AD701EC583D100D82E3B /* MineAccountController.m */; }; |
| 199 | D20C82BE1EEEA89700BB609F /* LVCHomePageListModel.m in Sources */ = {isa = PBXBuildFile; fileRef = D20C82BD1EEEA89700BB609F /* LVCHomePageListModel.m */; }; | 199 | D20C82BE1EEEA89700BB609F /* LVCHomePageListModel.m in Sources */ = {isa = PBXBuildFile; fileRef = D20C82BD1EEEA89700BB609F /* LVCHomePageListModel.m */; }; |
| 200 | D214CB4F1EF7BD890014EEBA /* V8HorizontalPickerView.m in Sources */ = {isa = PBXBuildFile; fileRef = D214CB4D1EF7BD890014EEBA /* V8HorizontalPickerView.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; | 200 | D214CB4F1EF7BD890014EEBA /* V8HorizontalPickerView.m in Sources */ = {isa = PBXBuildFile; fileRef = D214CB4D1EF7BD890014EEBA /* V8HorizontalPickerView.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; |
| 201 | + D214CB521EF7CB310014EEBA /* LVCChannelPagingView.m in Sources */ = {isa = PBXBuildFile; fileRef = D214CB511EF7CB310014EEBA /* LVCChannelPagingView.m */; }; | ||
| 201 | D217A24A1E7B76C7003B44CB /* PresentView.m in Sources */ = {isa = PBXBuildFile; fileRef = D217A2471E7B76C7003B44CB /* PresentView.m */; }; | 202 | D217A24A1E7B76C7003B44CB /* PresentView.m in Sources */ = {isa = PBXBuildFile; fileRef = D217A2471E7B76C7003B44CB /* PresentView.m */; }; |
| 202 | D217A24B1E7B76C7003B44CB /* PresentViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = D217A2491E7B76C7003B44CB /* PresentViewCell.m */; }; | 203 | D217A24B1E7B76C7003B44CB /* PresentViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = D217A2491E7B76C7003B44CB /* PresentViewCell.m */; }; |
| 203 | D217A24E1E7B77C7003B44CB /* ComboCell.m in Sources */ = {isa = PBXBuildFile; fileRef = D217A24D1E7B77C7003B44CB /* ComboCell.m */; }; | 204 | D217A24E1E7B77C7003B44CB /* ComboCell.m in Sources */ = {isa = PBXBuildFile; fileRef = D217A24D1E7B77C7003B44CB /* ComboCell.m */; }; |
| @@ -210,6 +211,10 @@ | @@ -210,6 +211,10 @@ | ||
| 210 | D236967E1E7F9E4100E4BF71 /* GiftPayButton.m in Sources */ = {isa = PBXBuildFile; fileRef = D236967D1E7F9E4100E4BF71 /* GiftPayButton.m */; }; | 211 | D236967E1E7F9E4100E4BF71 /* GiftPayButton.m in Sources */ = {isa = PBXBuildFile; fileRef = D236967D1E7F9E4100E4BF71 /* GiftPayButton.m */; }; |
| 211 | D23696841E7FC6A900E4BF71 /* chatListCell.m in Sources */ = {isa = PBXBuildFile; fileRef = D23696831E7FC6A900E4BF71 /* chatListCell.m */; }; | 212 | D23696841E7FC6A900E4BF71 /* chatListCell.m in Sources */ = {isa = PBXBuildFile; fileRef = D23696831E7FC6A900E4BF71 /* chatListCell.m */; }; |
| 212 | D23696921E7FC83800E4BF71 /* chatMsgModel.m in Sources */ = {isa = PBXBuildFile; fileRef = D23696911E7FC83800E4BF71 /* chatMsgModel.m */; }; | 213 | D23696921E7FC83800E4BF71 /* chatMsgModel.m in Sources */ = {isa = PBXBuildFile; fileRef = D23696911E7FC83800E4BF71 /* chatMsgModel.m */; }; |
| 214 | + D23BBDB81EF8D15D002FE0B8 /* LVCMainHeaderCollectionReusableView.m in Sources */ = {isa = PBXBuildFile; fileRef = D23BBDB71EF8D15D002FE0B8 /* LVCMainHeaderCollectionReusableView.m */; }; | ||
| 215 | + D23BBDBB1EF8E8B2002FE0B8 /* LVCBannerAndMarqueeModel.m in Sources */ = {isa = PBXBuildFile; fileRef = D23BBDBA1EF8E8B2002FE0B8 /* LVCBannerAndMarqueeModel.m */; }; | ||
| 216 | + D23BBDBE1EF8ED4A002FE0B8 /* LVCChannelDetailModel.m in Sources */ = {isa = PBXBuildFile; fileRef = D23BBDBD1EF8ED4A002FE0B8 /* LVCChannelDetailModel.m */; }; | ||
| 217 | + D23BBDC11EF8F513002FE0B8 /* LVCBqWqXgModel.m in Sources */ = {isa = PBXBuildFile; fileRef = D23BBDC01EF8F513002FE0B8 /* LVCBqWqXgModel.m */; }; | ||
| 213 | D23DC1551ECC41C100103B0E /* LVCVerifyViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = D23DC1541ECC41C100103B0E /* LVCVerifyViewController.m */; }; | 218 | D23DC1551ECC41C100103B0E /* LVCVerifyViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = D23DC1541ECC41C100103B0E /* LVCVerifyViewController.m */; }; |
| 214 | D24571581E8393EB00AA85D6 /* UIImageView+ZXExtension.m in Sources */ = {isa = PBXBuildFile; fileRef = D24571571E8393EB00AA85D6 /* UIImageView+ZXExtension.m */; }; | 219 | D24571581E8393EB00AA85D6 /* UIImageView+ZXExtension.m in Sources */ = {isa = PBXBuildFile; fileRef = D24571571E8393EB00AA85D6 /* UIImageView+ZXExtension.m */; }; |
| 215 | D245715C1E83A62B00AA85D6 /* BounceView.m in Sources */ = {isa = PBXBuildFile; fileRef = D245715B1E83A62B00AA85D6 /* BounceView.m */; }; | 220 | D245715C1E83A62B00AA85D6 /* BounceView.m in Sources */ = {isa = PBXBuildFile; fileRef = D245715B1E83A62B00AA85D6 /* BounceView.m */; }; |
| @@ -695,6 +700,8 @@ | @@ -695,6 +700,8 @@ | ||
| 695 | D214CB4C1EF7BD890014EEBA /* V8HorizontalPickerView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = V8HorizontalPickerView.h; sourceTree = "<group>"; }; | 700 | D214CB4C1EF7BD890014EEBA /* V8HorizontalPickerView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = V8HorizontalPickerView.h; sourceTree = "<group>"; }; |
| 696 | D214CB4D1EF7BD890014EEBA /* V8HorizontalPickerView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = V8HorizontalPickerView.m; sourceTree = "<group>"; }; | 701 | D214CB4D1EF7BD890014EEBA /* V8HorizontalPickerView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = V8HorizontalPickerView.m; sourceTree = "<group>"; }; |
| 697 | D214CB4E1EF7BD890014EEBA /* V8HorizontalPickerViewProtocol.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = V8HorizontalPickerViewProtocol.h; sourceTree = "<group>"; }; | 702 | D214CB4E1EF7BD890014EEBA /* V8HorizontalPickerViewProtocol.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = V8HorizontalPickerViewProtocol.h; sourceTree = "<group>"; }; |
| 703 | + D214CB501EF7CB310014EEBA /* LVCChannelPagingView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LVCChannelPagingView.h; sourceTree = "<group>"; }; | ||
| 704 | + D214CB511EF7CB310014EEBA /* LVCChannelPagingView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LVCChannelPagingView.m; sourceTree = "<group>"; }; | ||
| 698 | D217A2451E7B76C7003B44CB /* PresentModelAble.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PresentModelAble.h; sourceTree = "<group>"; }; | 705 | D217A2451E7B76C7003B44CB /* PresentModelAble.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PresentModelAble.h; sourceTree = "<group>"; }; |
| 699 | D217A2461E7B76C7003B44CB /* PresentView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PresentView.h; sourceTree = "<group>"; }; | 706 | D217A2461E7B76C7003B44CB /* PresentView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PresentView.h; sourceTree = "<group>"; }; |
| 700 | D217A2471E7B76C7003B44CB /* PresentView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PresentView.m; sourceTree = "<group>"; }; | 707 | D217A2471E7B76C7003B44CB /* PresentView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PresentView.m; sourceTree = "<group>"; }; |
| @@ -720,6 +727,14 @@ | @@ -720,6 +727,14 @@ | ||
| 720 | D23696831E7FC6A900E4BF71 /* chatListCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = chatListCell.m; sourceTree = "<group>"; }; | 727 | D23696831E7FC6A900E4BF71 /* chatListCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = chatListCell.m; sourceTree = "<group>"; }; |
| 721 | D23696901E7FC83800E4BF71 /* chatMsgModel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = chatMsgModel.h; sourceTree = "<group>"; }; | 728 | D23696901E7FC83800E4BF71 /* chatMsgModel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = chatMsgModel.h; sourceTree = "<group>"; }; |
| 722 | D23696911E7FC83800E4BF71 /* chatMsgModel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = chatMsgModel.m; sourceTree = "<group>"; }; | 729 | D23696911E7FC83800E4BF71 /* chatMsgModel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = chatMsgModel.m; sourceTree = "<group>"; }; |
| 730 | + D23BBDB61EF8D15D002FE0B8 /* LVCMainHeaderCollectionReusableView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LVCMainHeaderCollectionReusableView.h; sourceTree = "<group>"; }; | ||
| 731 | + D23BBDB71EF8D15D002FE0B8 /* LVCMainHeaderCollectionReusableView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LVCMainHeaderCollectionReusableView.m; sourceTree = "<group>"; }; | ||
| 732 | + D23BBDB91EF8E8B2002FE0B8 /* LVCBannerAndMarqueeModel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LVCBannerAndMarqueeModel.h; sourceTree = "<group>"; }; | ||
| 733 | + D23BBDBA1EF8E8B2002FE0B8 /* LVCBannerAndMarqueeModel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LVCBannerAndMarqueeModel.m; sourceTree = "<group>"; }; | ||
| 734 | + D23BBDBC1EF8ED4A002FE0B8 /* LVCChannelDetailModel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LVCChannelDetailModel.h; sourceTree = "<group>"; }; | ||
| 735 | + D23BBDBD1EF8ED4A002FE0B8 /* LVCChannelDetailModel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LVCChannelDetailModel.m; sourceTree = "<group>"; }; | ||
| 736 | + D23BBDBF1EF8F513002FE0B8 /* LVCBqWqXgModel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LVCBqWqXgModel.h; sourceTree = "<group>"; }; | ||
| 737 | + D23BBDC01EF8F513002FE0B8 /* LVCBqWqXgModel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LVCBqWqXgModel.m; sourceTree = "<group>"; }; | ||
| 723 | D23DC1531ECC41C100103B0E /* LVCVerifyViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LVCVerifyViewController.h; sourceTree = "<group>"; }; | 738 | D23DC1531ECC41C100103B0E /* LVCVerifyViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LVCVerifyViewController.h; sourceTree = "<group>"; }; |
| 724 | D23DC1541ECC41C100103B0E /* LVCVerifyViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LVCVerifyViewController.m; sourceTree = "<group>"; }; | 739 | D23DC1541ECC41C100103B0E /* LVCVerifyViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LVCVerifyViewController.m; sourceTree = "<group>"; }; |
| 725 | D24571561E8393EB00AA85D6 /* UIImageView+ZXExtension.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UIImageView+ZXExtension.h"; sourceTree = "<group>"; }; | 740 | D24571561E8393EB00AA85D6 /* UIImageView+ZXExtension.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UIImageView+ZXExtension.h"; sourceTree = "<group>"; }; |
| @@ -1722,6 +1737,12 @@ | @@ -1722,6 +1737,12 @@ | ||
| 1722 | children = ( | 1737 | children = ( |
| 1723 | D20C82BC1EEEA89700BB609F /* LVCHomePageListModel.h */, | 1738 | D20C82BC1EEEA89700BB609F /* LVCHomePageListModel.h */, |
| 1724 | D20C82BD1EEEA89700BB609F /* LVCHomePageListModel.m */, | 1739 | D20C82BD1EEEA89700BB609F /* LVCHomePageListModel.m */, |
| 1740 | + D23BBDB91EF8E8B2002FE0B8 /* LVCBannerAndMarqueeModel.h */, | ||
| 1741 | + D23BBDBA1EF8E8B2002FE0B8 /* LVCBannerAndMarqueeModel.m */, | ||
| 1742 | + D23BBDBC1EF8ED4A002FE0B8 /* LVCChannelDetailModel.h */, | ||
| 1743 | + D23BBDBD1EF8ED4A002FE0B8 /* LVCChannelDetailModel.m */, | ||
| 1744 | + D23BBDBF1EF8F513002FE0B8 /* LVCBqWqXgModel.h */, | ||
| 1745 | + D23BBDC01EF8F513002FE0B8 /* LVCBqWqXgModel.m */, | ||
| 1725 | ); | 1746 | ); |
| 1726 | name = Model; | 1747 | name = Model; |
| 1727 | sourceTree = "<group>"; | 1748 | sourceTree = "<group>"; |
| @@ -1736,6 +1757,17 @@ | @@ -1736,6 +1757,17 @@ | ||
| 1736 | path = V8HorizontalPickerView; | 1757 | path = V8HorizontalPickerView; |
| 1737 | sourceTree = "<group>"; | 1758 | sourceTree = "<group>"; |
| 1738 | }; | 1759 | }; |
| 1760 | + D214CB531EF7CB380014EEBA /* View */ = { | ||
| 1761 | + isa = PBXGroup; | ||
| 1762 | + children = ( | ||
| 1763 | + D214CB501EF7CB310014EEBA /* LVCChannelPagingView.h */, | ||
| 1764 | + D214CB511EF7CB310014EEBA /* LVCChannelPagingView.m */, | ||
| 1765 | + D23BBDB61EF8D15D002FE0B8 /* LVCMainHeaderCollectionReusableView.h */, | ||
| 1766 | + D23BBDB71EF8D15D002FE0B8 /* LVCMainHeaderCollectionReusableView.m */, | ||
| 1767 | + ); | ||
| 1768 | + name = View; | ||
| 1769 | + sourceTree = "<group>"; | ||
| 1770 | + }; | ||
| 1739 | D217A2441E7B76C7003B44CB /* Present */ = { | 1771 | D217A2441E7B76C7003B44CB /* Present */ = { |
| 1740 | isa = PBXGroup; | 1772 | isa = PBXGroup; |
| 1741 | children = ( | 1773 | children = ( |
| @@ -1810,6 +1842,7 @@ | @@ -1810,6 +1842,7 @@ | ||
| 1810 | children = ( | 1842 | children = ( |
| 1811 | D233EE741EEE26C700674ED5 /* Controller */, | 1843 | D233EE741EEE26C700674ED5 /* Controller */, |
| 1812 | D20C82BF1EEEA89E00BB609F /* Model */, | 1844 | D20C82BF1EEEA89E00BB609F /* Model */, |
| 1845 | + D214CB531EF7CB380014EEBA /* View */, | ||
| 1813 | ); | 1846 | ); |
| 1814 | path = HomePageSections; | 1847 | path = HomePageSections; |
| 1815 | sourceTree = "<group>"; | 1848 | sourceTree = "<group>"; |
| @@ -2279,6 +2312,7 @@ | @@ -2279,6 +2312,7 @@ | ||
| 2279 | D2029C861E6EADE10027CD92 /* Tools.m in Sources */, | 2312 | D2029C861E6EADE10027CD92 /* Tools.m in Sources */, |
| 2280 | 4B42A6C41EC00CC800DA09D7 /* UIAlertView+Blocks.m in Sources */, | 2313 | 4B42A6C41EC00CC800DA09D7 /* UIAlertView+Blocks.m in Sources */, |
| 2281 | D25BF8931E7FBAEA007FB138 /* LVCUGCBackgroundView.m in Sources */, | 2314 | D25BF8931E7FBAEA007FB138 /* LVCUGCBackgroundView.m in Sources */, |
| 2315 | + D214CB521EF7CB310014EEBA /* LVCChannelPagingView.m in Sources */, | ||
| 2282 | 4B45CE861EB86A590079AFB7 /* LVCLoginShowView.m in Sources */, | 2316 | 4B45CE861EB86A590079AFB7 /* LVCLoginShowView.m in Sources */, |
| 2283 | D2029CA01E6EADE10027CD92 /* NSObject+MJProperty.m in Sources */, | 2317 | D2029CA01E6EADE10027CD92 /* NSObject+MJProperty.m in Sources */, |
| 2284 | 4BD855FE1EBACD530082061D /* AFSecurityPolicy.m in Sources */, | 2318 | 4BD855FE1EBACD530082061D /* AFSecurityPolicy.m in Sources */, |
| @@ -2287,6 +2321,7 @@ | @@ -2287,6 +2321,7 @@ | ||
| 2287 | D2029C9C1E6EADE10027CD92 /* MJPropertyType.m in Sources */, | 2321 | D2029C9C1E6EADE10027CD92 /* MJPropertyType.m in Sources */, |
| 2288 | 81A4830E1E88B8300097A80A /* LVCChannelsModel.m in Sources */, | 2322 | 81A4830E1E88B8300097A80A /* LVCChannelsModel.m in Sources */, |
| 2289 | D22831091E77D8D500627701 /* GiftModel.m in Sources */, | 2323 | D22831091E77D8D500627701 /* GiftModel.m in Sources */, |
| 2324 | + D23BBDBE1EF8ED4A002FE0B8 /* LVCChannelDetailModel.m in Sources */, | ||
| 2290 | D2029CCD1E6EADE10027CD92 /* SearchModel.m in Sources */, | 2325 | D2029CCD1E6EADE10027CD92 /* SearchModel.m in Sources */, |
| 2291 | 4BD8560F1EBACEF80082061D /* CNLiveWebView.m in Sources */, | 2326 | 4BD8560F1EBACEF80082061D /* CNLiveWebView.m in Sources */, |
| 2292 | 810B65051E779B1F00133E15 /* NSLayoutConstraint+MASDebugAdditions.m in Sources */, | 2327 | 810B65051E779B1F00133E15 /* NSLayoutConstraint+MASDebugAdditions.m in Sources */, |
| @@ -2302,6 +2337,7 @@ | @@ -2302,6 +2337,7 @@ | ||
| 2302 | 81A483111E88B8630097A80A /* LVCChannelDetailsModel.m in Sources */, | 2337 | 81A483111E88B8630097A80A /* LVCChannelDetailsModel.m in Sources */, |
| 2303 | D2029D011E6EAE2E0027CD92 /* UIColor+HexString.m in Sources */, | 2338 | D2029D011E6EAE2E0027CD92 /* UIColor+HexString.m in Sources */, |
| 2304 | 4B45CE7D1EB86A590079AFB7 /* ModifyInfomationController.m in Sources */, | 2339 | 4B45CE7D1EB86A590079AFB7 /* ModifyInfomationController.m in Sources */, |
| 2340 | + D23BBDBB1EF8E8B2002FE0B8 /* LVCBannerAndMarqueeModel.m in Sources */, | ||
| 2305 | D2029CA41E6EADE10027CD92 /* MJRefreshComponent.m in Sources */, | 2341 | D2029CA41E6EADE10027CD92 /* MJRefreshComponent.m in Sources */, |
| 2306 | D2575C7A1E76A4F300E3A8FC /* NHCarViews.m in Sources */, | 2342 | D2575C7A1E76A4F300E3A8FC /* NHCarViews.m in Sources */, |
| 2307 | D209AD711EC583D100D82E3B /* MineAccountController.m in Sources */, | 2343 | D209AD711EC583D100D82E3B /* MineAccountController.m in Sources */, |
| @@ -2354,6 +2390,7 @@ | @@ -2354,6 +2390,7 @@ | ||
| 2354 | 4BD856181EBAD35C0082061D /* NSDictionary+Safety.m in Sources */, | 2390 | 4BD856181EBAD35C0082061D /* NSDictionary+Safety.m in Sources */, |
| 2355 | 4BD856011EBACD530082061D /* AFURLResponseSerialization.m in Sources */, | 2391 | 4BD856011EBACD530082061D /* AFURLResponseSerialization.m in Sources */, |
| 2356 | D2575C4A1E7685DE00E3A8FC /* UIView+Bubbling.m in Sources */, | 2392 | D2575C4A1E7685DE00E3A8FC /* UIView+Bubbling.m in Sources */, |
| 2393 | + D23BBDB81EF8D15D002FE0B8 /* LVCMainHeaderCollectionReusableView.m in Sources */, | ||
| 2357 | D2029CA61E6EADE10027CD92 /* MJRefreshHeader.m in Sources */, | 2394 | D2029CA61E6EADE10027CD92 /* MJRefreshHeader.m in Sources */, |
| 2358 | D2029CC41E6EADE10027CD92 /* UIImageView+WebCache.m in Sources */, | 2395 | D2029CC41E6EADE10027CD92 /* UIImageView+WebCache.m in Sources */, |
| 2359 | 4B45CE801EB86A590079AFB7 /* idAndPwdView.m in Sources */, | 2396 | 4B45CE801EB86A590079AFB7 /* idAndPwdView.m in Sources */, |
| @@ -2473,6 +2510,7 @@ | @@ -2473,6 +2510,7 @@ | ||
| 2473 | D2029D061E6EAE2E0027CD92 /* UIView+Extension.m in Sources */, | 2510 | D2029D061E6EAE2E0027CD92 /* UIView+Extension.m in Sources */, |
| 2474 | D25530001E7909AC00DF38A5 /* GiftAnimOperation.m in Sources */, | 2511 | D25530001E7909AC00DF38A5 /* GiftAnimOperation.m in Sources */, |
| 2475 | D2029C9D1E6EADE10027CD92 /* NSObject+MJClass.m in Sources */, | 2512 | D2029C9D1E6EADE10027CD92 /* NSObject+MJClass.m in Sources */, |
| 2513 | + D23BBDC11EF8F513002FE0B8 /* LVCBqWqXgModel.m in Sources */, | ||
| 2476 | D2029CCF1E6EADE10027CD92 /* SearchHttp.m in Sources */, | 2514 | D2029CCF1E6EADE10027CD92 /* SearchHttp.m in Sources */, |
| 2477 | 810B65001E779B1F00133E15 /* MASConstraintMaker.m in Sources */, | 2515 | 810B65001E779B1F00133E15 /* MASConstraintMaker.m in Sources */, |
| 2478 | D245715C1E83A62B00AA85D6 /* BounceView.m in Sources */, | 2516 | D245715C1E83A62B00AA85D6 /* BounceView.m in Sources */, |
LiveVideoCloud/Classes/Sections/HomePageSections/LVCBannerAndMarqueeModel.h
0 → 100644
| 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
0 → 100644
LiveVideoCloud/Classes/Sections/HomePageSections/LVCBqWqXgModel.h
0 → 100644
| 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
0 → 100644
LiveVideoCloud/Classes/Sections/HomePageSections/LVCChannelDetailModel.h
0 → 100644
| 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
0 → 100644
LiveVideoCloud/Classes/Sections/HomePageSections/LVCChannelPagingView.h
0 → 100644
| 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
0 → 100644
| 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 | + | ||
| 11 | +@interface LVCChannelPagingView() <UICollectionViewDelegate, UICollectionViewDataSource, UICollectionViewDelegateFlowLayout> { | ||
| 12 | + | ||
| 13 | + BOOL _hasSearchBox; //是否显示搜索框 | ||
| 14 | + NSArray *_searchColumnArray; | ||
| 15 | + NSMutableArray *_banners; | ||
| 16 | + NSMutableArray *_marquees; | ||
| 17 | + NSMutableArray *_channels; | ||
| 18 | +} | ||
| 19 | + | ||
| 20 | +@property (nonatomic, strong)UICollectionView *collectionView; | ||
| 21 | +@property (nonatomic, strong)UIView *searchBackground; | ||
| 22 | +@property (nonatomic, strong)UIButton *searchBtn; | ||
| 23 | +@property (nonatomic, strong)UIView *searchLine; | ||
| 24 | +@property (nonatomic, strong)UILabel *searchHotLab; | ||
| 25 | + | ||
| 26 | +@end | ||
| 27 | + | ||
| 28 | +@implementation LVCChannelPagingView | ||
| 29 | + | ||
| 30 | +- (instancetype)initWithFrame:(CGRect)frame | ||
| 31 | +{ | ||
| 32 | + self = [super initWithFrame:frame]; | ||
| 33 | + if (self) { | ||
| 34 | + [self addSubview:self.collectionView]; | ||
| 35 | + _banners = [[NSMutableArray alloc] init]; | ||
| 36 | + _marquees = [[NSMutableArray alloc] init]; | ||
| 37 | + _channels = [[NSMutableArray alloc] init]; | ||
| 38 | + } | ||
| 39 | + return self; | ||
| 40 | +} | ||
| 41 | + | ||
| 42 | +- (void)setModel:(LVCHomePageListModel *)model { | ||
| 43 | + | ||
| 44 | + if (_model != model) { | ||
| 45 | + _model = model; | ||
| 46 | + } | ||
| 47 | + [self requestAppindex]; | ||
| 48 | +} | ||
| 49 | + | ||
| 50 | +#pragma mark - 请求数据 | ||
| 51 | +- (void)requestAppindex { | ||
| 52 | + | ||
| 53 | + NSString *uid; | ||
| 54 | + if ([UserTools isLogin]) { | ||
| 55 | + uid = [UserInformationModel manager].uid; | ||
| 56 | + } else { | ||
| 57 | + uid = [NSString stringWithFormat:@"%u", arc4random()%3]; | ||
| 58 | + } | ||
| 59 | + NSString *tm = [NSString stringWithFormat:@"%u_%@", arc4random()%10, uid]; | ||
| 60 | + | ||
| 61 | + NSDictionary *parameter = @{@"cid": self.model.cid ? self.model.cid : @"", | ||
| 62 | + @"tm": tm}; | ||
| 63 | + | ||
| 64 | + NSString *url; | ||
| 65 | + if ([self.model.cid isEqualToString:@"tj/"]) { | ||
| 66 | + url = Appindexpage; | ||
| 67 | + } else { | ||
| 68 | + url = Appindex; | ||
| 69 | + } | ||
| 70 | + | ||
| 71 | + [[AFHTTPRequestOperationManager manager] GET:url parameters:[self addParameters:parameter] success:^(AFHTTPRequestOperation *operation, id responseObject) { | ||
| 72 | + | ||
| 73 | + responseObject = [responseObject validatedDictionary]; | ||
| 74 | + | ||
| 75 | + _hasSearchBox = [responseObject[@"searchCategory"] isEqualToString:@"false"] ? NO : YES; | ||
| 76 | + | ||
| 77 | + self.searchHotLab.text = responseObject[@"placeHolder"]; | ||
| 78 | + | ||
| 79 | + //是否显示搜索旁边的分类 | ||
| 80 | + _searchColumnArray = responseObject[@"searchColumn"]; | ||
| 81 | + | ||
| 82 | + if ([Tools isArray:_searchColumnArray]) { | ||
| 83 | + | ||
| 84 | + // 搜索旁的分类 | ||
| 85 | + } else { | ||
| 86 | + | ||
| 87 | + self.searchBtn.width = KScreenWidth - 20; | ||
| 88 | + } | ||
| 89 | + | ||
| 90 | + if (responseObject[@"banner"] && [responseObject[@"banner"] isKindOfClass:[NSArray class]]) { | ||
| 91 | + for (NSDictionary *dic in responseObject[@"banner"]) { | ||
| 92 | + LVCBannerAndMarqueeModel *model = [LVCBannerAndMarqueeModel modelWithDic:dic]; | ||
| 93 | + if (model) { | ||
| 94 | + [_banners addObject:model]; | ||
| 95 | + } | ||
| 96 | + } | ||
| 97 | + } | ||
| 98 | + if (responseObject[@"marquee"] && [responseObject[@"marquee"] isKindOfClass:[NSArray class]]) { | ||
| 99 | + for (NSDictionary *dic in responseObject[@"marquee"]) { | ||
| 100 | + LVCBannerAndMarqueeModel *model = [LVCBannerAndMarqueeModel modelWithDic:dic]; | ||
| 101 | + if (model) { | ||
| 102 | + [_marquees addObject:model]; | ||
| 103 | + } | ||
| 104 | + } | ||
| 105 | + } | ||
| 106 | + if (responseObject[@"channels"] && [responseObject[@"channels"] isKindOfClass:[NSArray class]]) { | ||
| 107 | + | ||
| 108 | + for (NSDictionary *dic in responseObject[@"channels"]) { | ||
| 109 | + LVCChannelDetailModel *model = [LVCChannelDetailModel modelWithDic:dic]; | ||
| 110 | + NSMutableArray *programs = [[NSMutableArray alloc] init]; | ||
| 111 | + | ||
| 112 | + if (dic[@"programs"] && [dic[@"programs"] isKindOfClass:[NSArray class]]) { | ||
| 113 | + for (NSDictionary *program in dic[@"programs"]) { | ||
| 114 | + id programModel; | ||
| 115 | + if ([model.channelType isEqualToString:@"M"]) { | ||
| 116 | + programModel = [LVCBqWqXgModel modelWithDic:program]; | ||
| 117 | + } else { | ||
| 118 | + programModel = [LVCBannerAndMarqueeModel modelWithDic:program]; | ||
| 119 | + } | ||
| 120 | + if (programModel) { | ||
| 121 | + [programs addObject:programModel]; | ||
| 122 | + } | ||
| 123 | + } | ||
| 124 | + } | ||
| 125 | + model.programs = [[NSArray alloc] initWithArray:programs]; | ||
| 126 | + if (model && [Tools isArray:model.programs]) { | ||
| 127 | + [_channels addObject:model]; | ||
| 128 | + } | ||
| 129 | + } | ||
| 130 | + } | ||
| 131 | + [self.collectionView reloadData]; | ||
| 132 | + | ||
| 133 | + } failure:^(AFHTTPRequestOperation *operation, NSError *error) { | ||
| 134 | + | ||
| 135 | + | ||
| 136 | + }]; | ||
| 137 | +} | ||
| 138 | + | ||
| 139 | +#pragma mark - UICollectionViewDelegate !!!!!!!!!!!!!!!!!!!!!!!!! | ||
| 140 | +- (void)scrollViewDidScroll:(UIScrollView *)scrollView { | ||
| 141 | + | ||
| 142 | + | ||
| 143 | +} | ||
| 144 | + | ||
| 145 | +- (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath { | ||
| 146 | + | ||
| 147 | + | ||
| 148 | +} | ||
| 149 | + | ||
| 150 | +#pragma mark - UICollectionViewDataSource !!!!!!!!!!!!!!!!!!!!!!!!! | ||
| 151 | +- (NSInteger)numberOfSectionsInCollectionView:(UICollectionView *)collectionView { | ||
| 152 | + | ||
| 153 | + return 0; | ||
| 154 | +} | ||
| 155 | + | ||
| 156 | +- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section { | ||
| 157 | + | ||
| 158 | + return 0; | ||
| 159 | +} | ||
| 160 | + | ||
| 161 | +- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath { | ||
| 162 | + | ||
| 163 | + return nil; | ||
| 164 | +} | ||
| 165 | + | ||
| 166 | +- (UICollectionReusableView *)collectionView:(UICollectionView *)collectionView viewForSupplementaryElementOfKind:(NSString *)kind atIndexPath:(NSIndexPath *)indexPath { | ||
| 167 | + | ||
| 168 | + return nil; | ||
| 169 | +} | ||
| 170 | + | ||
| 171 | +#pragma mark - UICollectionViewDelegateFlowLayout !!!!!!!!!!!!!!!!!!!!!!!!! | ||
| 172 | +- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath { | ||
| 173 | + | ||
| 174 | + return CGSizeZero; | ||
| 175 | +} | ||
| 176 | + | ||
| 177 | +- (UIEdgeInsets)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout insetForSectionAtIndex:(NSInteger)section { | ||
| 178 | + | ||
| 179 | + return UIEdgeInsetsZero; | ||
| 180 | +} | ||
| 181 | + | ||
| 182 | +- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout referenceSizeForHeaderInSection:(NSInteger)section { | ||
| 183 | + | ||
| 184 | + return CGSizeZero; | ||
| 185 | +} | ||
| 186 | + | ||
| 187 | +#pragma mark - GetMethod !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
| 188 | +- (UICollectionView *)collectionView { | ||
| 189 | + | ||
| 190 | + if (!_collectionView) { | ||
| 191 | + | ||
| 192 | + UICollectionViewFlowLayout *layout = [[UICollectionViewFlowLayout alloc] init]; | ||
| 193 | + layout.minimumLineSpacing = 0; | ||
| 194 | + layout.minimumInteritemSpacing = 0; | ||
| 195 | + | ||
| 196 | + _collectionView = [[UICollectionView alloc] initWithFrame:self.bounds collectionViewLayout:layout]; | ||
| 197 | + _collectionView.delegate = self; | ||
| 198 | + _collectionView.dataSource = self; | ||
| 199 | + _collectionView.backgroundColor = [UIColor whiteColor]; | ||
| 200 | + } | ||
| 201 | + return _collectionView; | ||
| 202 | +} | ||
| 203 | + | ||
| 204 | +- (UIView *)searchBackground { | ||
| 205 | + | ||
| 206 | + if (!_searchBackground) { | ||
| 207 | + _searchBackground = [[UIView alloc] initWithFrame:CGRectMake(0, 0, KScreenWidth, 45)]; | ||
| 208 | + _searchBackground.backgroundColor = [UIColor backgroundColor]; | ||
| 209 | + [_searchBackground addSubview:self.searchBtn]; | ||
| 210 | + } | ||
| 211 | + return _searchBackground; | ||
| 212 | +} | ||
| 213 | + | ||
| 214 | +- (UIButton *)searchBtn { | ||
| 215 | + | ||
| 216 | + if (!_searchBtn) { | ||
| 217 | + | ||
| 218 | + _searchBtn = [UIButton buttonWithType:UIButtonTypeCustom]; | ||
| 219 | + _searchBtn.frame = CGRectMake(10, 6, KScreenWidth-20, 33); | ||
| 220 | + [_searchBtn setImage:[UIImage imageNamed:@"search"] forState:UIControlStateNormal]; | ||
| 221 | + [_searchBtn setTitle:@"搜索" forState:UIControlStateNormal]; | ||
| 222 | + [_searchBtn setTitleColor:[UIColor grayColor] forState:UIControlStateNormal]; | ||
| 223 | + [_searchBtn setImageEdgeInsets:UIEdgeInsetsMake(0, -5, 0, 0)]; | ||
| 224 | + _searchBtn.titleLabel.font = [UIFont systemFontOfSize:14]; | ||
| 225 | + _searchBtn.backgroundColor = [UIColor whiteColor]; | ||
| 226 | + _searchBtn.layer.cornerRadius = 16; | ||
| 227 | + _searchBtn.layer.masksToBounds = YES; | ||
| 228 | + [_searchBtn addTarget:self action:@selector(searchBtnAction) forControlEvents:UIControlEventTouchUpInside]; | ||
| 229 | + } | ||
| 230 | + return _searchBtn; | ||
| 231 | +} | ||
| 232 | + | ||
| 233 | +- (UIView *)searchLine { | ||
| 234 | + | ||
| 235 | + if (!_searchLine) { | ||
| 236 | + _searchLine = [[UIView alloc] initWithFrame:CGRectMake(0, 44.5, KScreenWidth, 0.5)]; | ||
| 237 | + _searchLine.backgroundColor = [UIColor navigationLineColor]; | ||
| 238 | + } | ||
| 239 | + return _searchLine; | ||
| 240 | +} | ||
| 241 | + | ||
| 242 | +//- (UILabel *)searchHotLab { | ||
| 243 | +// | ||
| 244 | +// if (!_searchHotLab) { | ||
| 245 | +// _searchHotLab = [[UILabel alloc] initWithFrame:CGRectMake(35, 0, self.searchBtn.width-45, self.searchBtn.height)]; | ||
| 246 | +// _searchHotLab.textColor = [UIColor grayColorCNLive]; | ||
| 247 | +// _searchHotLab.font = [UIFont systemFontOfSize:14]; | ||
| 248 | +// } | ||
| 249 | +// return _searchHotLab; | ||
| 250 | +//} | ||
| 251 | + | ||
| 252 | +// ------------------------------------------分割线--------------------------------------------------- | ||
| 253 | +- (NSDictionary *)addParameters:(NSDictionary *)dict { | ||
| 254 | + | ||
| 255 | + if (![dict isKindOfClass:[NSDictionary class]]) { | ||
| 256 | + return dict; | ||
| 257 | + } | ||
| 258 | + if (!dict) { | ||
| 259 | + return @{@"appid": JBAppId, @"plat": @"i", @"version": JBAppVersion}; | ||
| 260 | + } else { | ||
| 261 | + NSMutableDictionary *dic = [[NSMutableDictionary alloc] initWithDictionary:dict]; | ||
| 262 | + [dic addEntriesFromDictionary:@{@"appid": JBAppId, @"plat": @"i", @"version": JBAppVersion}]; | ||
| 263 | + return [[NSDictionary alloc] initWithDictionary:dic]; | ||
| 264 | + } | ||
| 265 | +} | ||
| 266 | + | ||
| 267 | +@end |
LiveVideoCloud/Classes/Sections/HomePageSections/LVCMainHeaderCollectionReusableView.h
0 → 100644
| 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
0 → 100644
| 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 | + | ||
| 11 | +@interface LVCMainHeaderCollectionReusableView() | ||
| 12 | + | ||
| 13 | +@end | ||
| 14 | + | ||
| 15 | +@implementation LVCMainHeaderCollectionReusableView | ||
| 16 | + | ||
| 17 | + | ||
| 18 | + | ||
| 19 | +@end |
LiveVideoCloud/Classes/Sections/LVCHomePageViewController.m
| @@ -7,7 +7,7 @@ | @@ -7,7 +7,7 @@ | ||
| 7 | // | 7 | // |
| 8 | 8 | ||
| 9 | #import "LVCHomePageViewController.h" | 9 | #import "LVCHomePageViewController.h" |
| 10 | -#import "LVCHomePageListModel.h" | 10 | +#import "LVCChannelPagingView.h" |
| 11 | 11 | ||
| 12 | @interface LVCHomePageViewController ()<V8HorizontalPickerViewDataSource, V8HorizontalPickerViewDelegate,MHPagingScrollViewDelegate,UIScrollViewDelegate> { | 12 | @interface LVCHomePageViewController ()<V8HorizontalPickerViewDataSource, V8HorizontalPickerViewDelegate,MHPagingScrollViewDelegate,UIScrollViewDelegate> { |
| 13 | 13 | ||
| @@ -17,14 +17,26 @@ | @@ -17,14 +17,26 @@ | ||
| 17 | 17 | ||
| 18 | @property (nonatomic, strong)V8HorizontalPickerView *titleView; | 18 | @property (nonatomic, strong)V8HorizontalPickerView *titleView; |
| 19 | @property (nonatomic, strong)MHPagingScrollView *pageView; | 19 | @property (nonatomic, strong)MHPagingScrollView *pageView; |
| 20 | +@property (nonatomic, strong)UIButton *reloadBtn; | ||
| 21 | +@property (nonatomic, strong)UILabel *reloadLab; | ||
| 20 | @end | 22 | @end |
| 21 | 23 | ||
| 22 | @implementation LVCHomePageViewController | 24 | @implementation LVCHomePageViewController |
| 23 | 25 | ||
| 26 | +- (void)viewWillAppear:(BOOL)animated | ||
| 27 | +{ | ||
| 28 | + [super viewWillAppear:animated]; | ||
| 29 | + [self pagingScrollView:self.pageView pageForIndex:self.pageView.indexOfSelectedPage]; | ||
| 30 | +} | ||
| 31 | + | ||
| 24 | - (void)viewDidLoad { | 32 | - (void)viewDidLoad { |
| 25 | [super viewDidLoad]; | 33 | [super viewDidLoad]; |
| 26 | 34 | ||
| 27 | - self.navigationItem.title = @"首页"; | 35 | +// [[NSNotificationCenter defaultCenter] addObserver:self |
| 36 | +// selector:@selector(appBecomeActive) | ||
| 37 | +// name:UIApplicationDidBecomeActiveNotification | ||
| 38 | +// object:nil]; | ||
| 39 | + | ||
| 28 | _titleArr = [[NSMutableArray alloc] init]; | 40 | _titleArr = [[NSMutableArray alloc] init]; |
| 29 | 41 | ||
| 30 | [self getChannelList]; | 42 | [self getChannelList]; |
| @@ -33,7 +45,6 @@ | @@ -33,7 +45,6 @@ | ||
| 33 | [self.view addSubview:self.pageView]; | 45 | [self.view addSubview:self.pageView]; |
| 34 | [_pageView reloadPages]; | 46 | [_pageView reloadPages]; |
| 35 | [_titleView reloadData]; | 47 | [_titleView reloadData]; |
| 36 | - [self.titleView scrollToElement:0 animated:NO]; | ||
| 37 | } | 48 | } |
| 38 | 49 | ||
| 39 | #pragma mark - 请求频道列表 | 50 | #pragma mark - 请求频道列表 |
| @@ -47,7 +58,7 @@ | @@ -47,7 +58,7 @@ | ||
| 47 | [[AFHTTPRequestOperationManager manager] GET:AllChannellist parameters:para success:^(AFHTTPRequestOperation *operation, id responseObject) { | 58 | [[AFHTTPRequestOperationManager manager] GET:AllChannellist parameters:para success:^(AFHTTPRequestOperation *operation, id responseObject) { |
| 48 | 59 | ||
| 49 | [waitHUD hide:NO]; | 60 | [waitHUD hide:NO]; |
| 50 | -// [self.reloadBtn removeFromSuperview]; | 61 | + [self.reloadBtn removeFromSuperview]; |
| 51 | responseObject = [responseObject validatedDictionary]; | 62 | responseObject = [responseObject validatedDictionary]; |
| 52 | 63 | ||
| 53 | if ([[NSString stringWithFormat:@"%@",responseObject[@"errorCode"]] isEqualToString:@"0"]) { | 64 | if ([[NSString stringWithFormat:@"%@",responseObject[@"errorCode"]] isEqualToString:@"0"]) { |
| @@ -73,6 +84,7 @@ | @@ -73,6 +84,7 @@ | ||
| 73 | } | 84 | } |
| 74 | 85 | ||
| 75 | [_titleView reloadData]; | 86 | [_titleView reloadData]; |
| 87 | + [_pageView reloadPages]; | ||
| 76 | 88 | ||
| 77 | // /*-----------------列表数据处理----------------*/ | 89 | // /*-----------------列表数据处理----------------*/ |
| 78 | // [CNHDTVStatManager PVStatForPage:@"tj/" userID:[UserInformationModel manager].uid]; | 90 | // [CNHDTVStatManager PVStatForPage:@"tj/" userID:[UserInformationModel manager].uid]; |
| @@ -121,13 +133,13 @@ | @@ -121,13 +133,13 @@ | ||
| 121 | [Tools showHUDInView:self.view withString:@"获取数据失败" autoHide:YES]; | 133 | [Tools showHUDInView:self.view withString:@"获取数据失败" autoHide:YES]; |
| 122 | } | 134 | } |
| 123 | 135 | ||
| 124 | -// self.reloadLab.text = @"暂无数据"; | ||
| 125 | -// [self showChannelList]; | ||
| 126 | - | 136 | + self.reloadLab.text = @"暂无数据"; |
| 127 | 137 | ||
| 128 | } failure:^(AFHTTPRequestOperation *operation, NSError *error) { | 138 | } failure:^(AFHTTPRequestOperation *operation, NSError *error) { |
| 129 | 139 | ||
| 130 | [waitHUD hide:NO]; | 140 | [waitHUD hide:NO]; |
| 141 | + [self.reloadBtn removeFromSuperview]; | ||
| 142 | + self.reloadLab.text = @"您好像掉线了"; | ||
| 131 | }]; | 143 | }]; |
| 132 | } | 144 | } |
| 133 | 145 | ||
| @@ -189,16 +201,25 @@ | @@ -189,16 +201,25 @@ | ||
| 189 | 201 | ||
| 190 | - (UIView *)pagingScrollView:(MHPagingScrollView *)pagingScrollView pageForIndex:(NSUInteger)index | 202 | - (UIView *)pagingScrollView:(MHPagingScrollView *)pagingScrollView pageForIndex:(NSUInteger)index |
| 191 | { | 203 | { |
| 192 | - if ([_titleArr[index].title isEqualToString:@"推荐"]) { | 204 | + LVCHomePageListModel *model = [_titleArr safetyObjectAtIndex:index]; |
| 205 | + | ||
| 206 | + if ([model.type isEqualToString:@"channel"] || [model.type isEqualToString:@"tuijian"]) { | ||
| 193 | 207 | ||
| 194 | -// LVCTelevisionView *tvView = (LVCTelevisionView *)[pagingScrollView pageViewByIndex:index]; | ||
| 195 | -// if (!tvView) { | ||
| 196 | -// tvView = [[LVCTelevisionView alloc] init]; | ||
| 197 | -// } | ||
| 198 | -// return tvView; | 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; | ||
| 199 | 214 | ||
| 200 | - }else if ([_titleArr[index].title isEqualToString:@"华人频道"]) { | 215 | + } else if ([model.type isEqualToString:@"news"]) { |
| 201 | 216 | ||
| 217 | + UIView *view2 = [pagingScrollView pageViewByIndex:index]; | ||
| 218 | + if (!view2) { | ||
| 219 | + view2 = [[UIView alloc] init]; | ||
| 220 | + } | ||
| 221 | + view2.backgroundColor = [UIColor redColor]; | ||
| 222 | + return view2; | ||
| 202 | // LVCUGCLiveListView *liveListView = (LVCUGCLiveListView *)[pagingScrollView pageViewByIndex:index]; | 223 | // LVCUGCLiveListView *liveListView = (LVCUGCLiveListView *)[pagingScrollView pageViewByIndex:index]; |
| 203 | // if (!liveListView) { | 224 | // if (!liveListView) { |
| 204 | // liveListView = [[LVCUGCLiveListView alloc] initWithFrame:CGRectMake(0, 64, SCREEN_WIDTH, SCREEN_HEIGHT - 114)]; | 225 | // liveListView = [[LVCUGCLiveListView alloc] initWithFrame:CGRectMake(0, 64, SCREEN_WIDTH, SCREEN_HEIGHT - 114)]; |
| @@ -207,10 +228,22 @@ | @@ -207,10 +228,22 @@ | ||
| 207 | // } | 228 | // } |
| 208 | // liveListView.scrollToTop = YES; | 229 | // liveListView.scrollToTop = YES; |
| 209 | // return liveListView; | 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; | ||
| 210 | } | 239 | } |
| 240 | + | ||
| 211 | return nil; | 241 | return nil; |
| 212 | } | 242 | } |
| 213 | 243 | ||
| 244 | +#pragma mark - Action !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
| 245 | + | ||
| 246 | +#pragma mark - GetMetohd !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
| 214 | - (V8HorizontalPickerView *)titleView | 247 | - (V8HorizontalPickerView *)titleView |
| 215 | { | 248 | { |
| 216 | if (!_titleView) { | 249 | if (!_titleView) { |
| @@ -239,6 +272,45 @@ | @@ -239,6 +272,45 @@ | ||
| 239 | return _pageView; | 272 | return _pageView; |
| 240 | } | 273 | } |
| 241 | 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 | + | ||
| 242 | - (void)didReceiveMemoryWarning { | 314 | - (void)didReceiveMemoryWarning { |
| 243 | [super didReceiveMemoryWarning]; | 315 | [super didReceiveMemoryWarning]; |
| 244 | // Dispose of any resources that can be recreated. | 316 | // Dispose of any resources that can be recreated. |
LiveVideoCloud/PrefixHeader.pch
| @@ -31,6 +31,10 @@ | @@ -31,6 +31,10 @@ | ||
| 31 | #import <CNLiveChatManager/CNLiveChatManager.h> | 31 | #import <CNLiveChatManager/CNLiveChatManager.h> |
| 32 | #import "V8HorizontalPickerView.h" | 32 | #import "V8HorizontalPickerView.h" |
| 33 | #import "MHPagingScrollView.h" | 33 | #import "MHPagingScrollView.h" |
| 34 | + #import "LVCHomePageListModel.h" | ||
| 35 | + #import "LVCBannerAndMarqueeModel.h" | ||
| 36 | +#include "LVCChannelDetailModel.h" | ||
| 37 | +#import "LVCBqWqXgModel.h" | ||
| 34 | 38 | ||
| 35 | #import <CNLiveUserSystemSDK/CNLiveUserSystemCenter.h> | 39 | #import <CNLiveUserSystemSDK/CNLiveUserSystemCenter.h> |
| 36 | 40 | ||
| @@ -86,6 +90,9 @@ | @@ -86,6 +90,9 @@ | ||
| 86 | #define UserAppKey @"13c6f0ad6f459cd479834b0b39cff99c6cf20c970815bb" | 90 | #define UserAppKey @"13c6f0ad6f459cd479834b0b39cff99c6cf20c970815bb" |
| 87 | #define UserAppSceret @"14c887b76ec2ecdf7083fb4c62808f13f6ab77a0f9dfec" | 91 | #define UserAppSceret @"14c887b76ec2ecdf7083fb4c62808f13f6ab77a0f9dfec" |
| 88 | 92 | ||
| 93 | +#define JBAppId @"hdtv" | ||
| 94 | +#define JBAppVersion [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleVersion"] ///debug用 "CFBundleVersion" | ||
| 95 | + | ||
| 89 | //#define UserAppId @"60_itax25eq82" | 96 | //#define UserAppId @"60_itax25eq82" |
| 90 | //#define UserAppKey @"55a25a7f7e1124937fba06c82999d9a7c18379e2d24784" | 97 | //#define UserAppKey @"55a25a7f7e1124937fba06c82999d9a7c18379e2d24784" |
| 91 | //#define UserAppSceret @"29798eea30388f71d4a33b75d308c3cbb47077d56ce680" | 98 | //#define UserAppSceret @"29798eea30388f71d4a33b75d308c3cbb47077d56ce680" |
LiveVideoCloud/UtilKits/Common.h
| @@ -172,7 +172,11 @@ static NSString *const Market = @"http://data.cnlive.com/expo | @@ -172,7 +172,11 @@ static NSString *const Market = @"http://data.cnlive.com/expo | ||
| 172 | static NSString *const AllChannellist = @"http://intertv.cnlive.com/zgw/api/channellist"; | 172 | static NSString *const AllChannellist = @"http://intertv.cnlive.com/zgw/api/channellist"; |
| 173 | 173 | ||
| 174 | //首页信息 | 174 | //首页信息 |
| 175 | -static NSString *const Appindex = @"http://app.jczb.cnlive.com/api/appindex"; | 175 | +//static NSString *const Appindex = @"http://app.jczb.cnlive.com/api/appindex"; |
| 176 | +static NSString *const Appindex = @"http://intertv.cnlive.com/zgw_sp/api/appindex"; | ||
| 177 | + | ||
| 178 | +//推荐 | ||
| 179 | +static NSString *const Appindexpage = @"http://intertv.cnlive.com/zgw/api/appindexpage"; | ||
| 176 | 180 | ||
| 177 | //直播更多 | 181 | //直播更多 |
| 178 | static NSString *const Catprogramlist = @"http://app.jczb.cnlive.com/api/catprogramlist"; | 182 | static NSString *const Catprogramlist = @"http://app.jczb.cnlive.com/api/catprogramlist"; |