RQHomePageADCell.m 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116
  1. //
  2. // RQHomePageADCell.m
  3. // jiaPei
  4. //
  5. // Created by 张嵘 on 2022/6/20.
  6. // Copyright © 2022 JCZ. All rights reserved.
  7. //
  8. #import "RQHomePageADCell.h"
  9. @interface RQHomePageADCell () <SDCycleScrollViewDelegate>
  10. @property (nonatomic, readwrite, strong) RQHomePageADItemViewModel *viewModel;
  11. @property (nonatomic, readwrite, strong) SDCycleScrollView *myCycleScrollView;
  12. @property (nonatomic, readwrite, strong) NSArray *adArray;
  13. @property (weak, nonatomic) IBOutlet UIView *myADView;
  14. @end
  15. @implementation RQHomePageADCell
  16. #pragma mark - PublicMethods
  17. + (instancetype)cellWithCollectionView:(UICollectionView *)collectionView forIndexPath:(NSIndexPath *)indexPath {
  18. static NSString *ID = @"RQHomePageADCell";
  19. [collectionView registerNib:[UINib nibWithNibName:ID bundle:nil] forCellWithReuseIdentifier:ID];
  20. RQHomePageADCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:ID forIndexPath:indexPath];
  21. if (!cell) cell = [self rq_viewFromXib];
  22. return cell;
  23. }
  24. - (void)bindViewModel:(RQHomePageADItemViewModel *)viewModel {
  25. _viewModel = viewModel;
  26. if (self.adArray.count > 0) {
  27. NSMutableArray *arr = [self.adArray.rac_sequence map:^id _Nullable(NSDictionary *dic) {
  28. return dic[@"IMG"];
  29. }].array.mutableCopy;
  30. if (arr.count >= 1) {
  31. [arr insertObject:@"RQ-AD" atIndex:1];
  32. } else {
  33. [arr addObject:@"RQ-AD"];
  34. }
  35. self.myCycleScrollView.imageURLStringsGroup = arr.copy;
  36. } else {
  37. }
  38. }
  39. #pragma mark - SystemMethods
  40. - (void)awakeFromNib {
  41. [super awakeFromNib];
  42. [self.myADView addSubview:self.myCycleScrollView];
  43. }
  44. #pragma mark - SDCycleScrollViewDelegate
  45. - (void)cycleScrollView:(SDCycleScrollView *)cycleScrollView didSelectItemAtIndex:(NSInteger)index {
  46. if (self.adArray.count >= 1) {
  47. if (index == 1) return;
  48. } else {
  49. if (index >= self.adArray.count) return;
  50. }
  51. NSDictionary *dic = self.adArray[index];
  52. [RQ_SHARE_FUNCTION saveObjectWithObject:dic ForKey:@"currentSelectDic"];
  53. NSString *skipType = dic[@"OPENTYPE"];
  54. if ([skipType isEqualToString:@"1"]) {
  55. [RQ_SHARE_FUNCTION gotoWebViewWithUrlStr:dic[@"URL"]];
  56. }else{
  57. if ([dic[@"ADTYPE"] isEqualToString:@"2"]) {
  58. [RQ_SHARE_FUNCTION miniwithUserName:dic[@"URL"] path:dic[@"AI_XCX_URL"]? : @""];
  59. } else if ([dic[@"ADTYPE"] isEqualToString:@"1"]) {
  60. [[UIApplication sharedApplication] openURL:[NSURL URLWithString:dic[@"URL"]] options:@{} completionHandler:^(BOOL success) {
  61. }];
  62. } else if ([dic[@"ADTYPE"] isEqualToString:@"3"]) {
  63. WXSubscribeMsgReq *req = [[WXSubscribeMsgReq alloc] init];
  64. req.scene = 1;
  65. req.templateId = @"1iZwYeI2QtSXZ3rTRkQ42wgRkd7NSINzem8R-LvtHYw";
  66. req.reserved = @"";
  67. [WXApi sendReq:req completion:nil];
  68. }
  69. }
  70. }
  71. - (SDCycleScrollView *)myCycleScrollView {
  72. if (!_myCycleScrollView) {
  73. _myCycleScrollView = [SDCycleScrollView cycleScrollViewWithFrame:CGRectMake(16, 16, RQ_SCREEN_WIDTH - 32.f, (RQ_SCREEN_WIDTH - 32.f) * (80 / 345.f)) imageNamesGroup:@[@"adPlaceHolder"]];
  74. _myCycleScrollView.layer.cornerRadius = 10.f;
  75. _myCycleScrollView.layer.masksToBounds = YES;
  76. _myCycleScrollView.localizationImageNamesGroup = @[@"adPlaceHolder"];
  77. _myCycleScrollView.delegate = self;
  78. _myCycleScrollView.autoScrollTimeInterval = 5;
  79. _myCycleScrollView.placeholderImage = RQImageNamed(@"adPlaceHolder");
  80. _myCycleScrollView.bannerImageViewContentMode = UIViewContentModeScaleAspectFill;
  81. }
  82. return _myCycleScrollView;
  83. }
  84. - (NSArray *)adArray {
  85. //广告
  86. NSMutableArray *newAD = [NSMutableArray array];
  87. if (self.viewModel.homePageSubjectType == RQHomePageSubjectType_SubjectOne) {
  88. for (NSDictionary *dic in myDelegate.adArray) {
  89. if ([dic[@"LOCATION"] isEqualToString:@"3"]) {
  90. [newAD addObject:dic];
  91. }
  92. }
  93. }else{
  94. for (NSDictionary *dic in myDelegate.adArray) {
  95. if ([dic[@"LOCATION"] isEqualToString:@"6"]) {
  96. [newAD addObject:dic];
  97. }
  98. }
  99. }
  100. return newAD.copy;
  101. }
  102. @end