RQTimeADCell.m 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
  1. //
  2. // RQTimeADCell.m
  3. // jiaPei
  4. //
  5. // Created by 张嵘 on 2022/11/28.
  6. // Copyright © 2022 JCZ. All rights reserved.
  7. //
  8. #import "RQTimeADCell.h"
  9. @interface RQTimeADCell ()
  10. @property (nonatomic, readwrite, strong) RQTimeADItemViewModel *viewModel;
  11. @property (nonatomic, readwrite, strong) SDCycleScrollView *myCycleScrollView;
  12. @property (nonatomic, readwrite, strong) NSArray *adArray;
  13. @end
  14. @implementation RQTimeADCell
  15. #pragma mark - PublicMethods
  16. + (instancetype)cellWithCollectionView:(UICollectionView *)collectionView forIndexPath:(NSIndexPath *)indexPath {
  17. static NSString *ID = @"RQTimeADCell";
  18. [collectionView registerNib:[UINib nibWithNibName:ID bundle:nil] forCellWithReuseIdentifier:ID];
  19. RQTimeADCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:ID forIndexPath:indexPath];
  20. if (!cell) cell = [self rq_viewFromXib];
  21. return cell;
  22. }
  23. - (void)bindViewModel:(RQTimeADItemViewModel *)viewModel {
  24. self.viewModel = viewModel;
  25. if (self.adArray.count > 0) {
  26. NSMutableArray *arr = [self.adArray.rac_sequence map:^id _Nullable(NSDictionary *dic) {
  27. return dic[@"IMG"];
  28. }].array.mutableCopy;
  29. if (arr.count >= 1) {
  30. [arr insertObject:@"RQ-AD" atIndex:1];
  31. } else {
  32. [arr addObject:@"RQ-AD"];
  33. }
  34. self.myCycleScrollView.imageURLStringsGroup = arr.copy;
  35. } else {
  36. }
  37. }
  38. #pragma mark - SystemMethods
  39. - (void)awakeFromNib {
  40. [super awakeFromNib];
  41. [self addSubview:self.myCycleScrollView];
  42. }
  43. #pragma mark - SDCycleScrollViewDelegate
  44. - (void)cycleScrollView:(SDCycleScrollView *)cycleScrollView didSelectItemAtIndex:(NSInteger)index {
  45. if (self.adArray.count >= 1) {
  46. if (index == 1) return;
  47. } else {
  48. if (index >= self.adArray.count) return;
  49. }
  50. @synchronized (self.adArray) {
  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. }
  72. - (SDCycleScrollView *)myCycleScrollView {
  73. if (!_myCycleScrollView) {
  74. _myCycleScrollView = [SDCycleScrollView cycleScrollViewWithFrame:CGRectMake(16, 8, RQ_SCREEN_WIDTH - 32.f, (RQ_SCREEN_WIDTH - 32.f) * (80 / 345.f)) imageNamesGroup:@[@"adPlaceHolder"]];
  75. _myCycleScrollView.layer.cornerRadius = 10.f;
  76. _myCycleScrollView.layer.masksToBounds = YES;
  77. _myCycleScrollView.localizationImageNamesGroup = @[@"adPlaceHolder"];
  78. _myCycleScrollView.delegate = self;
  79. _myCycleScrollView.autoScrollTimeInterval = 5;
  80. _myCycleScrollView.placeholderImage = RQImageNamed(@"adPlaceHolder");
  81. _myCycleScrollView.bannerImageViewContentMode = UIViewContentModeScaleAspectFill;
  82. }
  83. return _myCycleScrollView;
  84. }
  85. - (NSArray *)adArray {
  86. //广告
  87. NSMutableArray *newAD = [NSMutableArray array];
  88. for (NSDictionary *dic in myDelegate.adArray) {
  89. if ([dic[@"LOCATION"] isEqualToString:@"6"]) {
  90. [newAD addObject:dic];
  91. }
  92. }
  93. return newAD.copy;
  94. }
  95. @end