前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >iOS广告轮播图

iOS广告轮播图

作者头像
公众号iOS逆向
发布2021-07-05 21:09:40
发布2021-07-05 21:09:40
73200
代码可运行
举报
文章被收录于专栏:iOS逆向与安全iOS逆向与安全
运行总次数:0
代码可运行
  • 1.1 cell 头文件
  • 1.2 cell 实现文件
  • 1.3 cell的使用

引言

在这里插入图片描述

需求背景:

信用卡网申接入(IOS)

实现思路:

自定义cell封装CycleScrollView 可使用第三方库:pod 'SDCycleScrollView','1.80'

原文地址

https://kunnan.blog.csdn.net/article/details/117529892

I、自定义cell封装CycleScrollView

1.1 cell 头文件

代码语言:javascript
代码运行次数:0
复制

#import <UIKit/UIKit.h>

NS_ASSUME_NONNULL_BEGIN

@interface QCTbannerViewTableViewCell : UITableViewCell



@property (nonatomic, strong) id models;
@property (nonatomic, copy) void (^block)(id sender);
+ (instancetype) tableViewCellWithTableView:(UITableView *) tableView   block:(void (^)(id sender))block  models:(id) models ;
+ (instancetype) tableViewCellWithTableView:(UITableView *) tableView;


/** block方式监听点击 */
@property (nonatomic, copy) void (^clickItemOperationBlock)(NSInteger currentIndex);




@end

NS_ASSUME_NONNULL_END

1.2 cell 实现文件

代码语言:javascript
代码运行次数:0
复制
//

#import "QCTbannerViewTableViewCell.h"

#import "SDCycleScrollView.h"


@interface QCTbannerViewTableViewCell ()


@property (nonatomic,weak) SDCycleScrollView *cellView;


@end

@implementation QCTbannerViewTableViewCell

- (void)awakeFromNib {
    [super awakeFromNib];
    // Initialization code
}

- (void)setSelected:(BOOL)selected animated:(BOOL)animated {
    [super setSelected:selected animated:animated];

    // Configure the view for the selected state
}



-(instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier{
    self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
    if (self) {
        
        self.selectionStyle = UITableViewCellSelectionStyleNone;//去掉选中效果
        
        
        [self selfInit];
        [self createSubView];
        [self bindViewModel];
        
        
    }
    return self;
}

- (void)bindViewModel {
}

- (void)selfInit{
    
    self.contentView.backgroundColor = kcellColor;
    
}

- (void)createSubView {
    [self cellView];
}


static NSString *identifier = @"QCTbannerViewTableViewCell";//QCTCheckOutViewcellSection4topTableViewCell
+ (instancetype) tableViewCellWithTableView:(UITableView *) tableView{
    
    QCTbannerViewTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:identifier];
    if (cell == nil) {// ------并不会执行
        
        cell = [[QCTbannerViewTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:identifier];
        
    }
    return cell;
}

+ (instancetype) tableViewCellWithTableView:(UITableView *) tableView   block:(void (^)(id sender))block  models:(id) models {
    QCTbannerViewTableViewCell *cell  = [self  tableViewCellWithTableView:tableView];
    
    if (block) {
        cell.block = block;
    }
    cell.models = models;
    return cell;
    
}


#pragma mark - ******** model

- (void)setModels:( id)models{
    _models =models;
    
        self.cellView.localizationImageNamesGroup = models;
    
    
}


- (SDCycleScrollView *)cellView{
    if (nil == _cellView) {
        SDCycleScrollView *tmpView = [[SDCycleScrollView alloc]init];
        _cellView = tmpView;
        
        
        _cellView.autoScrollTimeInterval = 3.0;
        _cellView.scrollDirection = UICollectionViewScrollDirectionHorizontal;
        
        
        _cellView.currentPageDotImage = [UIImage imageNamed:@"pageControlCurrentDot"];
        _cellView.pageDotImage = [UIImage imageNamed:@"pageControlDot"];
        

        
        
        
        
        
        [tmpView setBackgroundColor:kcellColor];
        
        [self.contentView addSubview:_cellView];
        
        __weak __typeof__(self) weakSelf = self;
        [_cellView mas_makeConstraints:^(MASConstraintMaker *make) {
            
            make.left.equalTo(weakSelf.contentView).offset(kAdjustRatio(15));
            make.right.equalTo(weakSelf.contentView).offset(- kAdjustRatio(15));
            make.top.equalTo(weakSelf.contentView).offset(kAdjustRatio(0));
            make.height.mas_equalTo(kAdjustRatio(150));
            
            
            make.bottom.equalTo(weakSelf.contentView).offset(kAdjustRatio(0));
            
        }];
        
        //监听点击
//        __weak __typeof__(self) weakSelf = self;

        
        [_cellView setClickItemOperationBlock:^(NSInteger currentIndex) {
           

            if(weakSelf.clickItemOperationBlock){
                weakSelf.clickItemOperationBlock(currentIndex);
                
                
            }
            
            
        }];
        
        
    }
    return _cellView;
}


- (void)layoutSubviews {
    [super layoutSubviews];
    UIView *view = self.cellView;
    [view layoutIfNeeded];
    
    view.backgroundColor = [UIColor colorWithRed:249/255.0 green:249/255.0 blue:249/255.0 alpha:1.0];//设置阴影的颜色
    
    view.layer.shadowColor = [UIColor colorWithRed:0/255.0 green:0/255.0 blue:0/255.0 alpha:0.16].CGColor;
    view.layer.shadowOffset = CGSizeMake(0,2);//设置阴影的偏移量,阴影的大小,x往右和y往下是正
    view.layer.shadowRadius = 3;
    view.layer.shadowOpacity = 1;//设置阴影的透明度
    view.layer.cornerRadius = 10;
    
    view.clipsToBounds = YES;//Setting this value to YES causes subviews to be clipped to the bounds of the receiver. If set to NO, subviews whose frames extend beyond the visible bounds of the receiver are not clipped. The default value is NO.

}

@end

1.3 cell的使用

  • 构建数据模型
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-06-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 iOS逆向 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 引言
  • I、自定义cell封装CycleScrollView
    • 1.1 cell 头文件
    • 1.2 cell 实现文件
    • 1.3 cell的使用
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档