YMHomePageViewController.m 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500
  1. //
  2. // YMHomePageViewController.m
  3. // MSYOUPAI
  4. //
  5. // Created by YoMi on 2024/2/4.
  6. // Copyright © 2024 MS. All rights reserved.
  7. //
  8. #import "YMHomePageViewController.h"
  9. #import "JXCategoryView.h"
  10. #import "JXPagerView.h"
  11. #import "YMHomePageViewModel.h"
  12. #import "YMHomePageBannerView.h"
  13. #import "YMHomePageListViewController.h"
  14. #import "YMHomePageListViewControllerOnline.h"
  15. #import "YOUPAILCBannerModel.h"
  16. #import "YOUPAILZHomeBannerCell.h"
  17. #define LZCategoryViewHeight 40.0f
  18. @interface YMHomePageViewController ()<JXCategoryViewDelegate, JXPagerViewDelegate,JXPagerMainTableViewGestureDelegate,TYCyclePagerViewDataSource, TYCyclePagerViewDelegate>
  19. {
  20. dispatch_source_t _timer;
  21. }
  22. /// 首页VM
  23. @property (nonatomic, strong) YMHomePageViewModel *viewModel;
  24. /// 首页Banner视图
  25. @property (nonatomic, strong) YMHomePageBannerView *bannerView;
  26. @property (nonatomic, weak) TYCyclePagerView *youpaipbannerView;
  27. @property (strong, nonatomic) TYPageControl *youpaippageControl;
  28. @property (strong, nonatomic) NSMutableArray *youpaipimageURLStringsGroup;
  29. @property (nonatomic, strong) NSArray <YOUPAILCBannerModel *> *youpaipbannerArray;
  30. @property (nonatomic, strong) UIView *headerV;
  31. /// 分类标题视图
  32. @property (nonatomic, strong) JXCategoryTitleView *categoryView;
  33. /// 分类分页视图
  34. @property (nonatomic, strong) JXPagerView *pagerView;
  35. /// 搜索按钮
  36. @property (nonatomic, strong) UILabel *searchLabel;
  37. /// 搜索按钮
  38. @property (nonatomic, strong) UIButton *searchBtn;
  39. @property (nonatomic, strong) UIButton *zhidingBtn;
  40. /// banner视图高度
  41. @property (nonatomic, assign) CGFloat bannerViewHeight;
  42. @end
  43. @implementation YMHomePageViewController
  44. @dynamic viewModel;
  45. - (void)viewDidLoad {
  46. [super viewDidLoad];
  47. [self setNavHidden:YES];
  48. [[YMGlobalUtils shared] getConfig];
  49. [OCNotificationCenter addObserver:self selector:@selector(updateOnline) name:@"youpaifuserOnlineUpdate" object:nil];
  50. // 设置背景图
  51. UIImageView *topBgImgv = [[UIImageView alloc] init];
  52. topBgImgv.image = ImageByName(@"ym_home_page_top_bg");
  53. topBgImgv.frame = CGRectMake(0, 0, kScreenWidth, kScreenHeight);
  54. [self.view insertSubview:topBgImgv atIndex:0];
  55. }
  56. - (void)viewDidAppear:(BOOL)animated {
  57. [super viewDidAppear:animated];
  58. self.navigationController.interactivePopGestureRecognizer.enabled = (self.categoryView.selectedIndex == 0);
  59. }
  60. - (void)viewWillAppear:(BOOL)animated{
  61. [super viewWillAppear:animated];
  62. [self.viewModel judgementsIsOpenAdolescentModel];
  63. [self youpaifrequestBannerData];
  64. }
  65. - (void)viewWillDisappear:(BOOL)animated{
  66. [super viewWillDisappear:animated];
  67. self.navigationController.interactivePopGestureRecognizer.enabled = YES;
  68. }
  69. - (void)ym_setupViews{
  70. [self.view addSubview:self.pagerView];
  71. [self.view setNeedsUpdateConstraints];
  72. [self.view updateConstraintsIfNeeded];
  73. }
  74. - (void)updateViewConstraints{
  75. [self.pagerView mas_makeConstraints:^(MASConstraintMaker *make) {
  76. make.top.equalTo(self.view).offset(0);
  77. make.left.equalTo(self.view);
  78. make.right.equalTo(self.view);
  79. make.bottom.equalTo(self.view);
  80. }];
  81. [super updateViewConstraints];
  82. }
  83. - (void)ym_bindViewModel{
  84. [self.bannerView ym_bindViewModel:self.viewModel.bannerVM];
  85. [[YMGlobalUtils shared] getConfig];
  86. if ([self.viewModel isFemaleGender]) {
  87. self.zhidingBtn.hidden = false;
  88. } else {
  89. self.zhidingBtn.hidden = true;
  90. }
  91. [self headerRefreshing];
  92. }
  93. /// 更新在线状态
  94. - (void)updateOnline{
  95. NSLog(@"updateOnline 更新在线状态");
  96. if (self->_timer) {
  97. dispatch_source_cancel(self->_timer);
  98. }
  99. if ([LCSaveData getTokenString] == nil) {
  100. return;
  101. }
  102. [LCHttpHelper requestWithURLString:onlineUpdate parameters:nil needToken:YES type:HttpRequestTypePost success:^(id responseObject) {
  103. NSDictionary* dict = (NSDictionary*)responseObject;
  104. NSInteger code = [[dict objectForKey:@"code"] integerValue];
  105. if (code==0) {//成功
  106. NSInteger user_online_open = [[[dict objectForKey:@"data"]objectForKey:@"user_online_open"] integerValue];
  107. int user_online_time = [[[dict objectForKey:@"data"]objectForKey:@"user_online_time"] intValue];
  108. if (user_online_open == 1) {
  109. __block int timeout= user_online_time;
  110. dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
  111. self->_timer = dispatch_source_create(DISPATCH_SOURCE_TYPE_TIMER, 0, 0,queue);
  112. dispatch_source_set_timer(self->_timer,dispatch_walltime(NULL, 0),1.0*NSEC_PER_SEC, 0); //每秒执行
  113. dispatch_source_set_event_handler(self->_timer, ^{
  114. if(timeout<=0){
  115. dispatch_source_cancel(self->_timer);
  116. dispatch_async(dispatch_get_main_queue(), ^{
  117. [self updateOnline];
  118. });
  119. }else{
  120. // NSString *strTime = [NSString stringWithFormat:@"%.2dS",timeout];
  121. dispatch_async(dispatch_get_main_queue(), ^{
  122. //设置界面的按钮显示 根据自己需求设置
  123. //NSLog(@"strTime strTime %@",strTime);
  124. //NSLog(@"当前时间挫%lld",[[LCTools getCurrentTimestamp] longLongValue]);
  125. });
  126. timeout--;
  127. }});
  128. dispatch_resume(self->_timer);
  129. }
  130. }
  131. } failure:^(NSError *error) {
  132. }];
  133. }
  134. - (void)headerRefreshing{
  135. [self.viewModel getAdvertData];
  136. // [self.viewModel getLevelIconData];
  137. [self.viewModel getBadgesAndNobilityIconData];
  138. [self.viewModel.bannerVM getOnTvData];
  139. [OCNotificationCenter postNotificationName:REFRESH_HOME_NOTIFICATION object:nil userInfo:@{}];
  140. }
  141. - (NSUInteger)tableHeaderViewHeightInPagerView:(JXPagerView *)pagerView {
  142. //return kYMStatusBarHeight + adapt(70);
  143. CGFloat bannerViewHeight = kYMStatusBarHeight + 18.0f + ScaleSize(82.0f);
  144. self.bannerViewHeight = bannerViewHeight;
  145. return bannerViewHeight;
  146. //return 0.1;
  147. //return self.bannerViewHeight;
  148. }
  149. - (UIView *)tableHeaderViewInPagerView:(JXPagerView *)pagerView {
  150. return self.headerV;
  151. //return self.bannerView;
  152. //return [[UIView alloc] init];
  153. }
  154. - (NSUInteger)heightForPinSectionHeaderInPagerView:(JXPagerView *)pagerView {
  155. return 20 + LZCategoryViewHeight;
  156. }
  157. - (UIView *)viewForPinSectionHeaderInPagerView:(JXPagerView *)pagerView {
  158. UIView *sectionView = [[UIView alloc]init];
  159. [sectionView addSubview:self.categoryView];
  160. [sectionView addSubview:self.zhidingBtn];
  161. [sectionView addSubview:self.searchBtn];
  162. [sectionView addSubview:self.searchLabel];
  163. [self.categoryView mas_makeConstraints:^(MASConstraintMaker *make) {
  164. //make.top.equalTo(sectionView).offset(kYMStatusBarHeight);
  165. make.centerY.equalTo(sectionView);
  166. make.left.equalTo(sectionView).offset(10);
  167. //make.bottom.equalTo(sectionView).offset(-10);
  168. make.height.equalTo(LZCategoryViewHeight);
  169. }];
  170. [self.zhidingBtn mas_makeConstraints:^(MASConstraintMaker *make) {
  171. make.centerY.equalTo(sectionView);
  172. make.left.equalTo(self.categoryView.mas_right).offset(adapt(10));
  173. make.width.equalTo(44);
  174. make.height.equalTo(44);
  175. }];
  176. [self.searchBtn mas_makeConstraints:^(MASConstraintMaker *make) {
  177. //make.top.equalTo(sectionView).offset(adapt(10));
  178. make.left.equalTo(self.zhidingBtn.mas_right).offset(adapt(10));
  179. make.right.equalTo(sectionView).offset(adapt(-10));
  180. //make.bottom.equalTo(sectionView).offset(adapt(-10));
  181. make.centerY.equalTo(sectionView);
  182. make.width.equalTo(44);
  183. make.height.equalTo(44);
  184. }];
  185. [self.searchLabel mas_makeConstraints:^(MASConstraintMaker *make) {
  186. make.left.equalTo(self.searchBtn).offset(8);
  187. make.centerY.equalTo(self.searchBtn).offset(3);
  188. }];
  189. return sectionView;
  190. }
  191. - (NSInteger)numberOfListsInPagerView:(JXPagerView *)pagerView {
  192. return self.categoryView.titles.count;
  193. }
  194. - (id<JXPagerViewListViewDelegate>)pagerView:(JXPagerView *)pagerView initListAtIndex:(NSInteger)index{
  195. // if (index != 0) {
  196. // YMHomePageListViewControllerOnline *childVC = [[YMHomePageListViewControllerOnline alloc] initWithViewModel:self.viewModel.homePageVMListDataArray[index]];
  197. // childVC.jxCategoryPageIndex = index;
  198. // childVC.jxPageTitle = self.categoryView.titles[index];
  199. // return childVC;
  200. // }
  201. YMHomePageListViewController *listVC = [[YMHomePageListViewController alloc] initWithViewModel:self.viewModel.homePageVMListDataArray[index]];
  202. listVC.pageIndex = index;
  203. listVC.jxPageTitle = self.categoryView.titles[index];
  204. @weakify(self)
  205. listVC.refreshBlock = ^{
  206. @strongify(self)
  207. [self.pagerView.mainTableView.mj_header endRefreshing];
  208. };
  209. return listVC;
  210. }
  211. - (void)pagerView:(JXPagerView *)pagerView mainTableViewDidScroll:(UIScrollView *)scrollView {
  212. //NSLog(@"%f",scrollView.contentOffset.y);
  213. //NSLog(@"%f",self.bannerViewHeight - kYMStatusBarHeight);
  214. if ((scrollView.contentOffset.y + 1) >= (self.bannerViewHeight - kYMStatusBarHeight)) {
  215. //self.bannerView.hidden = true;
  216. self.headerV.hidden = true;
  217. } else {
  218. //self.bannerView.hidden = false;
  219. self.headerV.hidden = false;
  220. }
  221. }
  222. #pragma mark - JXCategoryViewDelegate
  223. //滑动table获得的数组
  224. - (void)categoryView:(JXCategoryBaseView *)categoryView didSelectedItemAtIndex:(NSInteger)index {
  225. self.navigationController.interactivePopGestureRecognizer.enabled = (index == 0);
  226. }
  227. #pragma mark - JXPagerMainTableViewGestureDelegate
  228. - (BOOL)mainTableViewGestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer {
  229. //禁止categoryView左右滑动的时候,上下和左右都可以滚动
  230. if (otherGestureRecognizer == self.categoryView.collectionView.panGestureRecognizer) {
  231. return NO;
  232. }
  233. return [gestureRecognizer isKindOfClass:[UIPanGestureRecognizer class]] && [otherGestureRecognizer isKindOfClass:[UIPanGestureRecognizer class]];
  234. }
  235. - (YMHomePageBannerView *)bannerView{
  236. if (!_bannerView) {
  237. _bannerView = [[YMHomePageBannerView alloc]init];
  238. @weakify(self)
  239. _bannerView.bannerViewHeightBlock = ^(CGFloat bannerViewHeight) {
  240. @strongify(self)
  241. self.bannerViewHeight = bannerViewHeight;
  242. [self.pagerView resizeTableHeaderViewHeightWithAnimatable:NO duration:0 curve:0];
  243. };
  244. }
  245. return _bannerView;
  246. }
  247. - (UIView *)headerV{
  248. if (!_headerV) {
  249. _headerV = [[UIView alloc]init];
  250. UIView *headerV = [[UIView alloc] initWithFrame:CGRectMake(0, 0, KScreenWidth, 18.0f + ScaleSize(82.0f))];
  251. //headerV.frame = CGRectMake(0, 0, kScreenWidth, 0.1);
  252. headerV.hidden = NO;
  253. [self.view addSubview:headerV];
  254. _headerV = headerV;
  255. TYCyclePagerView *bannerView = [[TYCyclePagerView alloc]initWithFrame:CGRectMake(10, kYMStatusBarHeight + 9.0f, KScreenWidth - 20,ScaleSize(82.0f))];
  256. [headerV addSubview:bannerView];
  257. bannerView.isInfiniteLoop = YES;
  258. bannerView.autoScrollInterval = 4.0;
  259. bannerView.layer.cornerRadius = ScaleSize(10.0f);
  260. bannerView.clipsToBounds = YES;
  261. bannerView.dataSource = self;
  262. bannerView.delegate = self;
  263. [bannerView registerClass:[YOUPAILZHomeBannerCell class] forCellWithReuseIdentifier:@"cellId"];
  264. self.youpaipbannerView = bannerView;
  265. bannerView.backgroundColor = [UIColor clearColor];
  266. TYPageControl *pageControl = [[TYPageControl alloc]initWithFrame:CGRectMake(0, CGRectGetHeight(_youpaipbannerView.frame) - 26, CGRectGetWidth(_youpaipbannerView.frame), 26)];
  267. //pageControl.numberOfPages = _datas.count;
  268. pageControl.currentPageIndicatorSize = CGSizeMake(6, 6);
  269. pageControl.pageIndicatorSize = CGSizeMake(6, 6);
  270. //pageControl.currentPageIndicatorTintColor = [UIColor redColor];
  271. //pageControl.pageIndicatorTintColor = [UIColor grayColor];
  272. pageControl.pageIndicatorImage = [UIImage imageNamed:@"vqu_images_H_home_page_n"];
  273. pageControl.currentPageIndicatorImage = [UIImage imageNamed:@"vqu_images_H_home_page_s"];
  274. pageControl.contentInset = UIEdgeInsetsMake(0, 0, 0, 0);
  275. pageControl.contentHorizontalAlignment = UIControlContentHorizontalAlignmentCenter;
  276. pageControl.contentVerticalAlignment = UIControlContentVerticalAlignmentCenter;
  277. pageControl.pageIndicatorSpaing = 1;
  278. [bannerView addSubview:pageControl];
  279. self.youpaippageControl = pageControl;
  280. }
  281. return _headerV;
  282. }
  283. - (JXCategoryTitleView *)categoryView{
  284. if (!_categoryView) {
  285. _categoryView = [[JXCategoryTitleView alloc]initWithFrame:CGRectMake(0, 0,kFrameWidth, adapt(50))];
  286. _categoryView.delegate = self;
  287. if (self.viewModel.isFemaleGender) {
  288. _categoryView.titles = @[@"推荐", @"高颜值女神", @"活跃", @"男神"];
  289. } else {
  290. _categoryView.titles = @[@"推荐", @"高颜值女神", @"活跃"];
  291. }
  292. _categoryView.titleLabelZoomEnabled = NO;
  293. _categoryView.titleColorGradientEnabled = YES;
  294. _categoryView.titleColor = HexColorFromRGB(0xC6C6C6);
  295. _categoryView.titleSelectedColor = HexColorFromRGB(0x0A0A0A);
  296. _categoryView.titleFont = LCFont(17);
  297. _categoryView.titleSelectedFont = LCBoldFont(18);
  298. _categoryView.averageCellSpacingEnabled = NO;
  299. _categoryView.contentScrollViewClickTransitionAnimationEnabled = NO;
  300. _categoryView.backgroundColor = [UIColor clearColor];
  301. JXCategoryIndicatorLineView *lineView = [[JXCategoryIndicatorLineView alloc]init];
  302. lineView.indicatorColor = UIColor.clearColor;
  303. lineView.verticalMargin = adapt(8);
  304. lineView.indicatorWidth = JXCategoryViewAutomaticDimension;
  305. lineView.indicatorHeight = adapt(5);
  306. lineView.indicatorCornerRadius = 0;
  307. _categoryView.indicators = @[lineView];
  308. _categoryView.listContainer = (id<JXCategoryViewListContainer>)self.pagerView.listContainerView;
  309. JXCategoryIndicatorImageView *indicatorImageView = [[JXCategoryIndicatorImageView alloc] init];
  310. indicatorImageView.indicatorImageViewSize = CGSizeMake(adapt(68), 44);
  311. UIImageView *indicatorImgv = [[UIImageView alloc] init];
  312. //indicatorImgv.image = [UIImage imageWithColor:HexColorFromRGB(0xFC8997) size:CGSizeMake(adapt(40), adapt(8))];
  313. indicatorImgv.image = ImageByName(@"home_indicator_img");
  314. indicatorImgv.layer.cornerRadius = adapt(4);
  315. indicatorImgv.layer.masksToBounds = YES;
  316. //indicatorImgv.contentMode = UIViewContentModeScaleAspectFit;
  317. [indicatorImageView addSubview:indicatorImgv];
  318. [indicatorImgv mas_makeConstraints:^(MASConstraintMaker *make) {
  319. make.centerX.equalTo(indicatorImageView);
  320. make.bottom.equalTo(indicatorImageView).offset(adapt(0));
  321. make.width.mas_equalTo(adapt(41));
  322. make.height.mas_equalTo(adapt(9));
  323. }];
  324. _categoryView.indicators = @[indicatorImageView];
  325. }
  326. return _categoryView;
  327. }
  328. - (JXPagerView*)pagerView{
  329. if (!_pagerView) {
  330. //需要下拉刷新则要这个代理给设置出来
  331. _pagerView = [[JXPagerView alloc] initWithDelegate:self];
  332. _pagerView.mainTableView.backgroundColor = UIColor.clearColor;
  333. _pagerView.mainTableView.gestureDelegate = self;
  334. _pagerView.mainTableView.mj_header = self.refreshHeader;
  335. _pagerView.mainTableView.keyboardDismissMode = UIScrollViewKeyboardDismissModeOnDrag;
  336. //当有头部视图的时候设置固定高度
  337. _pagerView.pinSectionHeaderVerticalOffset = kYMStatusBarHeight;
  338. //关闭弹簧效果
  339. // _pagerView.mainTableView.bounces = NO;
  340. }
  341. return _pagerView;
  342. }
  343. - (UILabel *)searchLabel {
  344. if (!_searchLabel) {
  345. _searchLabel = [[UILabel alloc] init];
  346. _searchLabel.hidden = YES;
  347. _searchLabel.text = @"寻找";
  348. _searchLabel.textColor = UIColor.whiteColor;
  349. _searchLabel.font = LCFont(11);
  350. }
  351. return _searchLabel;
  352. }
  353. - (UIButton *)searchBtn {
  354. if (!_searchBtn) {
  355. _searchBtn = [UIButton buttonWithType:UIButtonTypeCustom];
  356. [_searchBtn setImage:ImageByName(@"ym_home_page_xunzhao") forState: UIControlStateNormal];
  357. [_searchBtn setTitleColor:UIColor.whiteColor forState:UIControlStateNormal];
  358. _searchBtn.titleLabel.font = LCFont(11);
  359. WS(weakSelf)
  360. [[[_searchBtn rac_signalForControlEvents:UIControlEventTouchUpInside] takeUntil:self.rac_willDeallocSignal] subscribeNext:^(__kindof UIButton * _Nullable sender) {
  361. [weakSelf.viewModel gotoSearchUser];
  362. }];
  363. }
  364. return _searchBtn;
  365. }
  366. - (UIButton *)zhidingBtn{
  367. if (!_zhidingBtn) {
  368. _zhidingBtn = [UIButton buttonWithType:UIButtonTypeCustom];
  369. [_zhidingBtn setImage:ImageByName(@"home_msg_zhiding") forState:UIControlStateNormal];
  370. _zhidingBtn.hidden = true;
  371. WS(weakSelf)
  372. [[[_zhidingBtn rac_signalForControlEvents:UIControlEventTouchUpInside] takeUntil:self.rac_willDeallocSignal] subscribeNext:^(__kindof UIButton * _Nullable sender) {
  373. [weakSelf.viewModel zhidingData];
  374. }];
  375. }
  376. return _zhidingBtn;
  377. }
  378. #pragma mark - TYCyclePagerViewDataSource
  379. - (NSInteger)numberOfItemsInPagerView:(TYCyclePagerView *)pageView {
  380. return self.youpaipimageURLStringsGroup.count;
  381. }
  382. - (UICollectionViewCell *)pagerView:(TYCyclePagerView *)pagerView cellForItemAtIndex:(NSInteger)index {
  383. YOUPAILZHomeBannerCell *cell = [pagerView dequeueReusableCellWithReuseIdentifier:@"cellId" forIndex:index];
  384. NSString *url;
  385. // absoluteString
  386. if (self.youpaipimageURLStringsGroup) {
  387. url = [self.youpaipimageURLStringsGroup[index] absoluteString];
  388. [cell.youpaipbgImageView sd_setImageWithURL:[NSURL URLWithString:url] placeholderImage:[UIImage imageNamed:@"banner_default"]];
  389. }
  390. cell.layer.cornerRadius = ScaleSize(10);
  391. cell.layer.masksToBounds = YES;
  392. cell.backgroundColor = [UIColor clearColor];
  393. // cell.backgroundColor = _datas[index];
  394. // cell.label.text = [NSString stringWithFormat:@"index->%ld",index];
  395. return cell;
  396. }
  397. - (TYCyclePagerViewLayout *)layoutForPagerView:(TYCyclePagerView *)pageView {
  398. TYCyclePagerViewLayout *layout = [[TYCyclePagerViewLayout alloc]init];
  399. layout.itemSize = CGSizeMake(CGRectGetWidth(pageView.frame), CGRectGetHeight(pageView.frame));
  400. layout.itemSpacing = 20;
  401. // ScaleSize(10.0f)
  402. layout.layoutType = TYCyclePagerTransformLayoutNormal;
  403. //layout.minimumAlpha = 0.3;
  404. return layout;
  405. }
  406. - (void)pagerView:(TYCyclePagerView *)pageView didSelectedItemCell:(__kindof UICollectionViewCell *)cell atIndex:(NSInteger)index{
  407. YOUPAILCBannerModel* model = self.youpaipbannerArray[index];
  408. if (model.youpaiplink_type==1) {
  409. ZCBaseWebVC* baseWeb = [[ZCBaseWebVC alloc]init];
  410. baseWeb.title = @"详情页";
  411. baseWeb.contentUrl = model.youpaiplink_url;
  412. [self.navigationController pushViewController:baseWeb animated:YES];
  413. }else if (model.youpaiplink_type==2||model.youpaiplink_type==3){
  414. [self youpaifpageToStr:model.youpaiplink_url];
  415. }
  416. }
  417. - (void)pagerView:(TYCyclePagerView *)pageView didScrollFromIndex:(NSInteger)fromIndex toIndex:(NSInteger)toIndex {
  418. self.youpaippageControl.currentPage = toIndex;
  419. }
  420. /// 获取banner数据
  421. - (void)youpaifrequestBannerData{
  422. @weakify(self);
  423. [LCHttpHelper requestWithURLString:HomeBanner parameters:@{@"cate_id":@"5"} needToken:YES type:(HttpRequestTypePost) success:^(id responseObject) {
  424. @strongify(self);
  425. NSDictionary* dict = (NSDictionary*)responseObject;
  426. NSInteger code = [[dict objectForKey:@"code"] integerValue];
  427. if (code==0) {//成功
  428. self.youpaipbannerArray = [YOUPAILCBannerModel mj_objectArrayWithKeyValuesArray:[[dict objectForKey:@"data"]objectForKey:@"banner"]];
  429. [self youpaifreloadBannerData];
  430. }
  431. } failure:^(NSError *error) {
  432. }];
  433. }
  434. -(void)youpaifreloadBannerData{
  435. NSMutableArray *imgUrlArray = [NSMutableArray array];
  436. for (YOUPAILCBannerModel* model in self.youpaipbannerArray) {
  437. [imgUrlArray addObject:[LCTools getImageUrlWithAddress:model.youpaipimage]];
  438. }
  439. self.youpaippageControl.numberOfPages = imgUrlArray.count;
  440. self.youpaipimageURLStringsGroup = imgUrlArray;
  441. [self.youpaipbannerView reloadData];
  442. }
  443. @end