Commit 3758957d577c973ffec5fe4eb65c466067f3a219
1 parent
1ac7bee4
推荐..数据请求
Showing
14 changed files
with
576 additions
and
15 deletions
LiveVideoCloud.xcodeproj/project.pbxproj
| ... | ... | @@ -198,6 +198,7 @@ |
| 198 | 198 | D209AD711EC583D100D82E3B /* MineAccountController.m in Sources */ = {isa = PBXBuildFile; fileRef = D209AD701EC583D100D82E3B /* MineAccountController.m */; }; |
| 199 | 199 | D20C82BE1EEEA89700BB609F /* LVCHomePageListModel.m in Sources */ = {isa = PBXBuildFile; fileRef = D20C82BD1EEEA89700BB609F /* LVCHomePageListModel.m */; }; |
| 200 | 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 | 202 | D217A24A1E7B76C7003B44CB /* PresentView.m in Sources */ = {isa = PBXBuildFile; fileRef = D217A2471E7B76C7003B44CB /* PresentView.m */; }; |
| 202 | 203 | D217A24B1E7B76C7003B44CB /* PresentViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = D217A2491E7B76C7003B44CB /* PresentViewCell.m */; }; |
| 203 | 204 | D217A24E1E7B77C7003B44CB /* ComboCell.m in Sources */ = {isa = PBXBuildFile; fileRef = D217A24D1E7B77C7003B44CB /* ComboCell.m */; }; |
| ... | ... | @@ -210,6 +211,10 @@ |
| 210 | 211 | D236967E1E7F9E4100E4BF71 /* GiftPayButton.m in Sources */ = {isa = PBXBuildFile; fileRef = D236967D1E7F9E4100E4BF71 /* GiftPayButton.m */; }; |
| 211 | 212 | D23696841E7FC6A900E4BF71 /* chatListCell.m in Sources */ = {isa = PBXBuildFile; fileRef = D23696831E7FC6A900E4BF71 /* chatListCell.m */; }; |
| 212 | 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 | 218 | D23DC1551ECC41C100103B0E /* LVCVerifyViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = D23DC1541ECC41C100103B0E /* LVCVerifyViewController.m */; }; |
| 214 | 219 | D24571581E8393EB00AA85D6 /* UIImageView+ZXExtension.m in Sources */ = {isa = PBXBuildFile; fileRef = D24571571E8393EB00AA85D6 /* UIImageView+ZXExtension.m */; }; |
| 215 | 220 | D245715C1E83A62B00AA85D6 /* BounceView.m in Sources */ = {isa = PBXBuildFile; fileRef = D245715B1E83A62B00AA85D6 /* BounceView.m */; }; |
| ... | ... | @@ -695,6 +700,8 @@ |
| 695 | 700 | D214CB4C1EF7BD890014EEBA /* V8HorizontalPickerView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = V8HorizontalPickerView.h; sourceTree = "<group>"; }; |
| 696 | 701 | D214CB4D1EF7BD890014EEBA /* V8HorizontalPickerView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = V8HorizontalPickerView.m; sourceTree = "<group>"; }; |
| 697 | 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 | 705 | D217A2451E7B76C7003B44CB /* PresentModelAble.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PresentModelAble.h; sourceTree = "<group>"; }; |
| 699 | 706 | D217A2461E7B76C7003B44CB /* PresentView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PresentView.h; sourceTree = "<group>"; }; |
| 700 | 707 | D217A2471E7B76C7003B44CB /* PresentView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PresentView.m; sourceTree = "<group>"; }; |
| ... | ... | @@ -720,6 +727,14 @@ |
| 720 | 727 | D23696831E7FC6A900E4BF71 /* chatListCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = chatListCell.m; sourceTree = "<group>"; }; |
| 721 | 728 | D23696901E7FC83800E4BF71 /* chatMsgModel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = chatMsgModel.h; sourceTree = "<group>"; }; |
| 722 | 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 | 738 | D23DC1531ECC41C100103B0E /* LVCVerifyViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LVCVerifyViewController.h; sourceTree = "<group>"; }; |
| 724 | 739 | D23DC1541ECC41C100103B0E /* LVCVerifyViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LVCVerifyViewController.m; sourceTree = "<group>"; }; |
| 725 | 740 | D24571561E8393EB00AA85D6 /* UIImageView+ZXExtension.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UIImageView+ZXExtension.h"; sourceTree = "<group>"; }; |
| ... | ... | @@ -1722,6 +1737,12 @@ |
| 1722 | 1737 | children = ( |
| 1723 | 1738 | D20C82BC1EEEA89700BB609F /* LVCHomePageListModel.h */, |
| 1724 | 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 | 1747 | name = Model; |
| 1727 | 1748 | sourceTree = "<group>"; |
| ... | ... | @@ -1736,6 +1757,17 @@ |
| 1736 | 1757 | path = V8HorizontalPickerView; |
| 1737 | 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 | 1771 | D217A2441E7B76C7003B44CB /* Present */ = { |
| 1740 | 1772 | isa = PBXGroup; |
| 1741 | 1773 | children = ( |
| ... | ... | @@ -1810,6 +1842,7 @@ |
| 1810 | 1842 | children = ( |
| 1811 | 1843 | D233EE741EEE26C700674ED5 /* Controller */, |
| 1812 | 1844 | D20C82BF1EEEA89E00BB609F /* Model */, |
| 1845 | + D214CB531EF7CB380014EEBA /* View */, | |
| 1813 | 1846 | ); |
| 1814 | 1847 | path = HomePageSections; |
| 1815 | 1848 | sourceTree = "<group>"; |
| ... | ... | @@ -2279,6 +2312,7 @@ |
| 2279 | 2312 | D2029C861E6EADE10027CD92 /* Tools.m in Sources */, |
| 2280 | 2313 | 4B42A6C41EC00CC800DA09D7 /* UIAlertView+Blocks.m in Sources */, |
| 2281 | 2314 | D25BF8931E7FBAEA007FB138 /* LVCUGCBackgroundView.m in Sources */, |
| 2315 | + D214CB521EF7CB310014EEBA /* LVCChannelPagingView.m in Sources */, | |
| 2282 | 2316 | 4B45CE861EB86A590079AFB7 /* LVCLoginShowView.m in Sources */, |
| 2283 | 2317 | D2029CA01E6EADE10027CD92 /* NSObject+MJProperty.m in Sources */, |
| 2284 | 2318 | 4BD855FE1EBACD530082061D /* AFSecurityPolicy.m in Sources */, |
| ... | ... | @@ -2287,6 +2321,7 @@ |
| 2287 | 2321 | D2029C9C1E6EADE10027CD92 /* MJPropertyType.m in Sources */, |
| 2288 | 2322 | 81A4830E1E88B8300097A80A /* LVCChannelsModel.m in Sources */, |
| 2289 | 2323 | D22831091E77D8D500627701 /* GiftModel.m in Sources */, |
| 2324 | + D23BBDBE1EF8ED4A002FE0B8 /* LVCChannelDetailModel.m in Sources */, | |
| 2290 | 2325 | D2029CCD1E6EADE10027CD92 /* SearchModel.m in Sources */, |
| 2291 | 2326 | 4BD8560F1EBACEF80082061D /* CNLiveWebView.m in Sources */, |
| 2292 | 2327 | 810B65051E779B1F00133E15 /* NSLayoutConstraint+MASDebugAdditions.m in Sources */, |
| ... | ... | @@ -2302,6 +2337,7 @@ |
| 2302 | 2337 | 81A483111E88B8630097A80A /* LVCChannelDetailsModel.m in Sources */, |
| 2303 | 2338 | D2029D011E6EAE2E0027CD92 /* UIColor+HexString.m in Sources */, |
| 2304 | 2339 | 4B45CE7D1EB86A590079AFB7 /* ModifyInfomationController.m in Sources */, |
| 2340 | + D23BBDBB1EF8E8B2002FE0B8 /* LVCBannerAndMarqueeModel.m in Sources */, | |
| 2305 | 2341 | D2029CA41E6EADE10027CD92 /* MJRefreshComponent.m in Sources */, |
| 2306 | 2342 | D2575C7A1E76A4F300E3A8FC /* NHCarViews.m in Sources */, |
| 2307 | 2343 | D209AD711EC583D100D82E3B /* MineAccountController.m in Sources */, |
| ... | ... | @@ -2354,6 +2390,7 @@ |
| 2354 | 2390 | 4BD856181EBAD35C0082061D /* NSDictionary+Safety.m in Sources */, |
| 2355 | 2391 | 4BD856011EBACD530082061D /* AFURLResponseSerialization.m in Sources */, |
| 2356 | 2392 | D2575C4A1E7685DE00E3A8FC /* UIView+Bubbling.m in Sources */, |
| 2393 | + D23BBDB81EF8D15D002FE0B8 /* LVCMainHeaderCollectionReusableView.m in Sources */, | |
| 2357 | 2394 | D2029CA61E6EADE10027CD92 /* MJRefreshHeader.m in Sources */, |
| 2358 | 2395 | D2029CC41E6EADE10027CD92 /* UIImageView+WebCache.m in Sources */, |
| 2359 | 2396 | 4B45CE801EB86A590079AFB7 /* idAndPwdView.m in Sources */, |
| ... | ... | @@ -2473,6 +2510,7 @@ |
| 2473 | 2510 | D2029D061E6EAE2E0027CD92 /* UIView+Extension.m in Sources */, |
| 2474 | 2511 | D25530001E7909AC00DF38A5 /* GiftAnimOperation.m in Sources */, |
| 2475 | 2512 | D2029C9D1E6EADE10027CD92 /* NSObject+MJClass.m in Sources */, |
| 2513 | + D23BBDC11EF8F513002FE0B8 /* LVCBqWqXgModel.m in Sources */, | |
| 2476 | 2514 | D2029CCF1E6EADE10027CD92 /* SearchHttp.m in Sources */, |
| 2477 | 2515 | 810B65001E779B1F00133E15 /* MASConstraintMaker.m in Sources */, |
| 2478 | 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 | // |
| 8 | 8 | |
| 9 | 9 | #import "LVCHomePageViewController.h" |
| 10 | -#import "LVCHomePageListModel.h" | |
| 10 | +#import "LVCChannelPagingView.h" | |
| 11 | 11 | |
| 12 | 12 | @interface LVCHomePageViewController ()<V8HorizontalPickerViewDataSource, V8HorizontalPickerViewDelegate,MHPagingScrollViewDelegate,UIScrollViewDelegate> { |
| 13 | 13 | |
| ... | ... | @@ -17,14 +17,26 @@ |
| 17 | 17 | |
| 18 | 18 | @property (nonatomic, strong)V8HorizontalPickerView *titleView; |
| 19 | 19 | @property (nonatomic, strong)MHPagingScrollView *pageView; |
| 20 | +@property (nonatomic, strong)UIButton *reloadBtn; | |
| 21 | +@property (nonatomic, strong)UILabel *reloadLab; | |
| 20 | 22 | @end |
| 21 | 23 | |
| 22 | 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 | 32 | - (void)viewDidLoad { |
| 25 | 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 | 40 | _titleArr = [[NSMutableArray alloc] init]; |
| 29 | 41 | |
| 30 | 42 | [self getChannelList]; |
| ... | ... | @@ -33,7 +45,6 @@ |
| 33 | 45 | [self.view addSubview:self.pageView]; |
| 34 | 46 | [_pageView reloadPages]; |
| 35 | 47 | [_titleView reloadData]; |
| 36 | - [self.titleView scrollToElement:0 animated:NO]; | |
| 37 | 48 | } |
| 38 | 49 | |
| 39 | 50 | #pragma mark - 请求频道列表 |
| ... | ... | @@ -47,7 +58,7 @@ |
| 47 | 58 | [[AFHTTPRequestOperationManager manager] GET:AllChannellist parameters:para success:^(AFHTTPRequestOperation *operation, id responseObject) { |
| 48 | 59 | |
| 49 | 60 | [waitHUD hide:NO]; |
| 50 | -// [self.reloadBtn removeFromSuperview]; | |
| 61 | + [self.reloadBtn removeFromSuperview]; | |
| 51 | 62 | responseObject = [responseObject validatedDictionary]; |
| 52 | 63 | |
| 53 | 64 | if ([[NSString stringWithFormat:@"%@",responseObject[@"errorCode"]] isEqualToString:@"0"]) { |
| ... | ... | @@ -73,6 +84,7 @@ |
| 73 | 84 | } |
| 74 | 85 | |
| 75 | 86 | [_titleView reloadData]; |
| 87 | + [_pageView reloadPages]; | |
| 76 | 88 | |
| 77 | 89 | // /*-----------------列表数据处理----------------*/ |
| 78 | 90 | // [CNHDTVStatManager PVStatForPage:@"tj/" userID:[UserInformationModel manager].uid]; |
| ... | ... | @@ -121,13 +133,13 @@ |
| 121 | 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 | 138 | } failure:^(AFHTTPRequestOperation *operation, NSError *error) { |
| 129 | 139 | |
| 130 | 140 | [waitHUD hide:NO]; |
| 141 | + [self.reloadBtn removeFromSuperview]; | |
| 142 | + self.reloadLab.text = @"您好像掉线了"; | |
| 131 | 143 | }]; |
| 132 | 144 | } |
| 133 | 145 | |
| ... | ... | @@ -189,16 +201,25 @@ |
| 189 | 201 | |
| 190 | 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 | 223 | // LVCUGCLiveListView *liveListView = (LVCUGCLiveListView *)[pagingScrollView pageViewByIndex:index]; |
| 203 | 224 | // if (!liveListView) { |
| 204 | 225 | // liveListView = [[LVCUGCLiveListView alloc] initWithFrame:CGRectMake(0, 64, SCREEN_WIDTH, SCREEN_HEIGHT - 114)]; |
| ... | ... | @@ -207,10 +228,22 @@ |
| 207 | 228 | // } |
| 208 | 229 | // liveListView.scrollToTop = YES; |
| 209 | 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 | 241 | return nil; |
| 212 | 242 | } |
| 213 | 243 | |
| 244 | +#pragma mark - Action !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | |
| 245 | + | |
| 246 | +#pragma mark - GetMetohd !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | |
| 214 | 247 | - (V8HorizontalPickerView *)titleView |
| 215 | 248 | { |
| 216 | 249 | if (!_titleView) { |
| ... | ... | @@ -239,6 +272,45 @@ |
| 239 | 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 | 314 | - (void)didReceiveMemoryWarning { |
| 243 | 315 | [super didReceiveMemoryWarning]; |
| 244 | 316 | // Dispose of any resources that can be recreated. | ... | ... |
LiveVideoCloud/PrefixHeader.pch
| ... | ... | @@ -31,6 +31,10 @@ |
| 31 | 31 | #import <CNLiveChatManager/CNLiveChatManager.h> |
| 32 | 32 | #import "V8HorizontalPickerView.h" |
| 33 | 33 | #import "MHPagingScrollView.h" |
| 34 | + #import "LVCHomePageListModel.h" | |
| 35 | + #import "LVCBannerAndMarqueeModel.h" | |
| 36 | +#include "LVCChannelDetailModel.h" | |
| 37 | +#import "LVCBqWqXgModel.h" | |
| 34 | 38 | |
| 35 | 39 | #import <CNLiveUserSystemSDK/CNLiveUserSystemCenter.h> |
| 36 | 40 | |
| ... | ... | @@ -86,6 +90,9 @@ |
| 86 | 90 | #define UserAppKey @"13c6f0ad6f459cd479834b0b39cff99c6cf20c970815bb" |
| 87 | 91 | #define UserAppSceret @"14c887b76ec2ecdf7083fb4c62808f13f6ab77a0f9dfec" |
| 88 | 92 | |
| 93 | +#define JBAppId @"hdtv" | |
| 94 | +#define JBAppVersion [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleVersion"] ///debug用 "CFBundleVersion" | |
| 95 | + | |
| 89 | 96 | //#define UserAppId @"60_itax25eq82" |
| 90 | 97 | //#define UserAppKey @"55a25a7f7e1124937fba06c82999d9a7c18379e2d24784" |
| 91 | 98 | //#define UserAppSceret @"29798eea30388f71d4a33b75d308c3cbb47077d56ce680" | ... | ... |
LiveVideoCloud/UtilKits/Common.h
| ... | ... | @@ -172,7 +172,11 @@ static NSString *const Market = @"http://data.cnlive.com/expo |
| 172 | 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 | 182 | static NSString *const Catprogramlist = @"http://app.jczb.cnlive.com/api/catprogramlist"; | ... | ... |