RQTimeADCell.m 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120
  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. @property (strong, nonatomic) UIImageView *meImageView;
  14. @end
  15. @implementation RQTimeADCell
  16. #pragma mark - PublicMethods
  17. + (instancetype)cellWithCollectionView:(UICollectionView *)collectionView forIndexPath:(NSIndexPath *)indexPath {
  18. static NSString *ID = @"RQTimeADCell";
  19. [collectionView registerNib:[UINib nibWithNibName:ID bundle:nil] forCellWithReuseIdentifier:ID];
  20. RQTimeADCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:ID forIndexPath:indexPath];
  21. if (!cell) cell = [self rq_viewFromXib];
  22. return cell;
  23. }
  24. - (void)bindViewModel:(RQTimeADItemViewModel *)viewModel {
  25. self.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 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. @synchronized (self.adArray) {
  52. NSDictionary *dic= self.adArray[index];
  53. [RQ_SHARE_FUNCTION saveObjectWithObject:dic ForKey:@"currentSelectDic"];
  54. NSString *skipType = dic[@"OPENTYPE"];
  55. if ([skipType isEqualToString:@"1"]) {
  56. [RQ_SHARE_FUNCTION gotoWebViewWithUrlStr:dic[@"URL"]];
  57. }else{
  58. if ([dic[@"ADTYPE"] isEqualToString:@"2"]) {
  59. [RQ_SHARE_FUNCTION miniwithUserName:dic[@"URL"] path:dic[@"AI_XCX_URL"]? : @""];
  60. } else if ([dic[@"ADTYPE"] isEqualToString:@"1"]) {
  61. [[UIApplication sharedApplication] openURL:[NSURL URLWithString:dic[@"URL"]] options:@{} completionHandler:^(BOOL success) {
  62. }];
  63. } else if ([dic[@"ADTYPE"] isEqualToString:@"3"]) {
  64. WXSubscribeMsgReq *req = [[WXSubscribeMsgReq alloc] init];
  65. req.scene = 1;
  66. req.templateId = @"1iZwYeI2QtSXZ3rTRkQ42wgRkd7NSINzem8R-LvtHYw";
  67. req.reserved = @"";
  68. [WXApi sendReq:req completion:nil];
  69. }
  70. }
  71. }
  72. }
  73. - (UIImageView *)meImageView{
  74. if(!_meImageView){
  75. _meImageView = [[UIImageView alloc]init];
  76. [_meImageView sd_setImageWithURL:[NSURL URLWithString:@"https://t1-1305573081.file.myqcloud.com/banner/jsjp_banner.png"] placeholderImage:RQImageNamed(@"adPlaceHolder")];
  77. }
  78. return _meImageView;
  79. }
  80. - (SDCycleScrollView *)myCycleScrollView {
  81. if (!_myCycleScrollView) {
  82. _myCycleScrollView = [SDCycleScrollView cycleScrollViewWithFrame:CGRectMake(16, 8, RQ_SCREEN_WIDTH - 32.f, (RQ_SCREEN_WIDTH - 32.f) * (80 / 345.f)) imageNamesGroup:@[@"adPlaceHolder"]];
  83. _myCycleScrollView.layer.cornerRadius = 10.f;
  84. _myCycleScrollView.layer.masksToBounds = YES;
  85. _myCycleScrollView.localizationImageNamesGroup = @[@"adPlaceHolder"];
  86. _myCycleScrollView.delegate = self;
  87. _myCycleScrollView.autoScrollTimeInterval = 5;
  88. _myCycleScrollView.placeholderImage = self.meImageView.image;
  89. _myCycleScrollView.bannerImageViewContentMode = UIViewContentModeScaleAspectFill;
  90. }
  91. return _myCycleScrollView;
  92. }
  93. - (NSArray *)adArray {
  94. //广告
  95. NSMutableArray *newAD = [NSMutableArray array];
  96. for (NSDictionary *dic in myDelegate.adArray) {
  97. if ([dic[@"LOCATION"] isEqualToString:@"6"]) {
  98. [newAD addObject:dic];
  99. }
  100. }
  101. return newAD.copy;
  102. }
  103. @end