YOUPAILZCommonGiftView.m 9.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237
  1. //
  2. // YOUPAILZCommonGiftView.m
  3. // VQU
  4. //
  5. // Created by 肖浩然的mac on 2021/8/20.
  6. // Copyright © 2021 leo. All rights reserved.
  7. //
  8. #import "YOUPAILZCommonGiftView.h"
  9. #import "JXCategoryView.h"
  10. #import "JXPagerView.h"
  11. #import "YOUPAILZCommonGiftVC.h"
  12. #import "YOUPAILZCommonGiftListModel.h"
  13. #import "UIViewController+TFPresent.h"
  14. #import "SDCycleScrollView.h"
  15. #define LZCategoryViewHeight 54.0f
  16. #define LZCategoryViewItemWidth 65.0f
  17. @interface YOUPAILZCommonGiftView ()<JXCategoryViewDelegate,JXPagerViewDelegate,JXCategoryListContainerViewDelegate,DidGiftSenderDelegate,SDCycleScrollViewDelegate>
  18. @property (nonatomic, weak) JXCategoryListContainerView *youpaippagerView;
  19. @property (nonatomic, strong) JXCategoryTitleView *youpaipcategoryView;
  20. /* titlearr */
  21. @property (strong, nonatomic) NSArray *youpaiptitlesArr;
  22. /* youpaipfirstBtn */
  23. @property (strong, nonatomic) UIButton *youpaipfirstBtn;
  24. @property (strong, nonatomic) YOUPAILCFirstRechargeModel *youpaipfirstRechargeModel;
  25. @property(nonatomic,strong)SDCycleScrollView* youpaipSDCscrollView;
  26. @end
  27. @implementation YOUPAILZCommonGiftView
  28. - (void)viewDidLoad {
  29. [super viewDidLoad];
  30. self.baseView.hidden = YES;
  31. // self.youpaiptitlesArr = @[@"1",@"2",@"3"];
  32. dispatch_group_t group = dispatch_group_create();
  33. dispatch_group_enter(group);
  34. dispatch_group_async(group, dispatch_get_main_queue(), ^{
  35. NSLog(@"%@---获取 余额",[NSThread currentThread]);
  36. // 获取余额
  37. [self youpaifrequestBannerData:^{
  38. dispatch_group_leave(group);
  39. }];
  40. });
  41. dispatch_group_notify(group, dispatch_get_main_queue(), ^{
  42. NSLog(@"%@---全部结束。。。",[NSThread currentThread]);
  43. [self youpaifrequestCategoryListData];
  44. });
  45. }
  46. -(void)youpaifsetupUI{
  47. UIView *bgV = [[UIView alloc] initWithFrame:CGRectMake(0, 0, KScreenWidth, 333.0f+SafeHeight)];
  48. bgV.backgroundColor = [UIColor whiteColor];
  49. [LCTools clipCorner:UIRectCornerTopLeft|UIRectCornerTopRight View:bgV size:CGSizeMake(20.0f, 20.0f)];
  50. [self.view addSubview:bgV];
  51. [bgV mas_makeConstraints:^(MASConstraintMaker *make) {
  52. make.left.right.bottom.offset(0.0f);
  53. make.height.offset(333.0f+SafeHeight);
  54. }];
  55. NSMutableArray <NSString *>*titles = [NSMutableArray array];
  56. for (YOUPAILZCommonGiftListModel *model in self.youpaiptitlesArr) {
  57. [titles addObject:model.youpaipname];
  58. }
  59. JXCategoryTitleView *youpaipcategoryView = [[JXCategoryTitleView alloc] init];
  60. youpaipcategoryView.backgroundColor = [UIColor whiteColor];
  61. youpaipcategoryView.titles = titles;
  62. youpaipcategoryView.delegate = self;
  63. youpaipcategoryView.titleSelectedColor = UIColor.blackColor;
  64. youpaipcategoryView.titleColor = UIColor.blackColor;
  65. youpaipcategoryView.titleColorGradientEnabled = YES;
  66. youpaipcategoryView.titleFont = LCFont(18.0f);
  67. youpaipcategoryView.titleSelectedFont = LCBoldFont(18.0f);
  68. youpaipcategoryView.cellWidth = LZCategoryViewItemWidth;
  69. youpaipcategoryView.cellSpacing = 0.0f;
  70. youpaipcategoryView.averageCellSpacingEnabled = NO;
  71. youpaipcategoryView.defaultSelectedIndex =1;
  72. [bgV addSubview:youpaipcategoryView];
  73. self.youpaipcategoryView = youpaipcategoryView;
  74. [youpaipcategoryView mas_makeConstraints:^(MASConstraintMaker *make) {
  75. make.left.top.right.offset(0.0f);
  76. make.height.offset(49.0f);
  77. }];
  78. JXCategoryIndicatorLineView *lineView = [[JXCategoryIndicatorLineView alloc] init];
  79. lineView.verticalMargin = 8.0f;
  80. lineView.indicatorHeight = 3.0f;
  81. lineView.indicatorWidth = 10;
  82. lineView.indicatorColor = UIColor.blackColor;
  83. youpaipcategoryView.indicators = @[lineView];
  84. JXCategoryListContainerView *pagerView = [[JXCategoryListContainerView alloc] initWithType:JXCategoryListContainerType_CollectionView delegate:self];
  85. [pagerView setDefaultSelectedIndex:1];
  86. pagerView.listCellBackgroundColor = LCBkgColor;
  87. // pagerView.frame = CGRectMake(0.0f,CGRectGetMaxY(youpaipcategoryBgV.frame), KScreenWidth, KScreenHeight - CGRectGetMaxY(youpaipcategoryBgV.frame) - SafeHeight);
  88. [bgV addSubview:pagerView];
  89. self.youpaippagerView = pagerView;
  90. [pagerView mas_makeConstraints:^(MASConstraintMaker *make) {
  91. make.left.right.offset(0.0f);
  92. make.top.equalTo(youpaipcategoryView.mas_bottom);
  93. make.bottom.offset(0.0f);
  94. }];
  95. self.youpaipcategoryView.listContainer = self.youpaippagerView;
  96. //首冲按钮
  97. SDCycleScrollView *bannerView1 = [SDCycleScrollView cycleScrollViewWithFrame:CGRectZero delegate:self placeholderImage:[UIImage imageNamed:@""]];
  98. [self.view addSubview:bannerView1];
  99. self.youpaipSDCscrollView = bannerView1;
  100. [bannerView1 mas_makeConstraints:^(MASConstraintMaker *make) {
  101. make.right.mas_equalTo(0);
  102. make.bottom.mas_equalTo(bgV.mas_top);
  103. make.size.mas_equalTo(CGSizeMake(50, 50));
  104. }];
  105. bannerView1.autoScrollTimeInterval = 3.0;//2s轮播
  106. bannerView1.pageControlStyle = SDCycleScrollViewPageContolStyleNone;
  107. bannerView1.backgroundColor = [UIColor clearColor];
  108. NSMutableArray *imgUrlArray = [NSMutableArray new];
  109. for (YOUPAILCBannerModel* model in self.youpaipfirstRechargeModel.youpaiplist) {
  110. [imgUrlArray addObject:[LCTools getImageUrlWithAddress:model.youpaipimage]];
  111. }
  112. self.youpaipSDCscrollView.imageURLStringsGroup = imgUrlArray;
  113. if (self.youpaipfirstRechargeModel.youpaipis_open == 1) {
  114. self.youpaipSDCscrollView.hidden = NO;
  115. }else{
  116. self.youpaipSDCscrollView.hidden = YES;
  117. }
  118. [self.youpaipcategoryView reloadData];
  119. [pagerView reloadData];
  120. }
  121. #pragma mark - SDCycleScrollViewDelegate
  122. - (void)cycleScrollView:(SDCycleScrollView *)cycleScrollView didSelectItemAtIndex:(NSInteger)index
  123. {
  124. [self dismissViewControllerAnimated:NO completion:^{
  125. YOUPAILCBannerModel* model = self.youpaipfirstRechargeModel.youpaiplist[index];
  126. if (self.youpaiptouchAdvertBlock) {
  127. self.youpaiptouchAdvertBlock(model);
  128. }else{
  129. if (model.youpaiplink_type==1) {
  130. ZCBaseWebVC* baseWeb = [[ZCBaseWebVC alloc]init];
  131. baseWeb.contentUrl = model.youpaiplink_url;
  132. if ([LCTools getCurrentVC].navigationController == nil) {
  133. [[LCTools getContainNavigationControllerCurrentVC].navigationController pushViewController:baseWeb animated:YES];
  134. }else{
  135. [[LCTools getCurrentVC].navigationController pushViewController:baseWeb animated:YES];
  136. }
  137. }else if (model.youpaiplink_type==2||model.youpaiplink_type==3){
  138. [self youpaifpageToStr:model.youpaiplink_url];
  139. }
  140. }
  141. }];
  142. }
  143. - (void)youpaifrequestBannerData:(void(^)(void))complete{
  144. [LCHttpHelper requestWithURLString:GetAdvert parameters:@{@"position":@"5"} needToken:YES type:(HttpRequestTypePost) success:^(id responseObject) {
  145. NSDictionary* dict = (NSDictionary*)responseObject;
  146. NSInteger code = [[dict objectForKey:@"code"] integerValue];
  147. if (code==0) {//成功
  148. self.youpaipfirstRechargeModel = [YOUPAILCFirstRechargeModel mj_objectWithKeyValues:dict[@"data"]];
  149. if (complete) {
  150. complete();
  151. }
  152. }
  153. } failure:^(NSError *error) {}];
  154. }
  155. // 返回列表的数量
  156. - (NSInteger)numberOfListsInlistContainerView:(JXCategoryListContainerView *)listContainerView {
  157. return self.youpaiptitlesArr.count;
  158. }
  159. // 根据下标 index 返回对应遵守并实现 `JXCategoryListContentViewDelegate` 协议的列表实例
  160. - (id<JXCategoryListContentViewDelegate>)listContainerView:(JXCategoryListContainerView *)listContainerView initListForIndex:(NSInteger)index {
  161. YOUPAILZCommonGiftListModel *model = self.youpaiptitlesArr[index];
  162. YOUPAILZCommonGiftVC *vc = [YOUPAILZCommonGiftVC new];
  163. vc.delegate = self;
  164. vc.youpaipisAnchor = self.youpaipisAnchor;
  165. vc.send_gift_hide = model.youpaipsend_gift_hide;
  166. vc.youpaipcountDown = self.youpaipcountDown;
  167. vc.ID = [NSString stringWithFormat:@"%ld",model.youpaipid];
  168. [vc setYoupaipjumToWalletBlock:^{
  169. if (self.jumToWalletBlock1) {
  170. self.jumToWalletBlock1();
  171. }
  172. }];
  173. return vc;
  174. }
  175. //- (void)youpaipcategoryView:(JXCategoryBaseView *)youpaipcategoryView didSelectedItemAtIndex:(NSInteger)index{
  176. //
  177. // [self.youpaipcategoryView.listContainer reloadData];
  178. //
  179. //
  180. //}
  181. -(void)youpaifDidSenderGiftWith:(YOUPAILCGiftModel *)model Count:(NSInteger)count CategoryID:(NSString *)categoryid{
  182. if (self.youpaiplzgiftblock) {
  183. self.youpaiplzgiftblock(model, count,categoryid);
  184. }
  185. }
  186. - (void)youpaifrequestCategoryListData{
  187. @weakify(self)
  188. [LCHttpHelper requestWithURLString:LiveGiftList parameters:@{} needToken:YES type:HttpRequestTypePost success:^(id responseObject) {
  189. @strongify(self)
  190. NSDictionary* dict = (NSDictionary*)responseObject;
  191. NSInteger code = [[dict objectForKey:@"code"] integerValue];
  192. if (code == 0) {
  193. self.youpaiptitlesArr = [YOUPAILZCommonGiftListModel mj_objectArrayWithKeyValuesArray:[dict objectForKey:@"data"]];
  194. [self youpaifsetupUI];
  195. }else{
  196. [ZCHUDHelper showTitle:[dict objectForKey:@"message"]];
  197. }
  198. } failure:^(NSError *error) {
  199. [ZCHUDHelper showTitle:error.localizedDescription];
  200. }];
  201. }
  202. @end