03 RYImagesScroller-iOS高度自定义的图片轮播器

之前在项目中遇到了需要图片和视频混合轮播的需求 但是没找到合适的轮播器于是就自己撸了一个

项目地址: https://github.com/RyukieSama/RYImagesScroller

图片轮播

支持自定义分页图片 支持自定义蒙版视图

混合轮播实现思路

外部传入自定义View数组 和 各个自定义View对应的index数组即可 传入的View会被覆盖在对应的Cell上面

效果展示

上图效果示例代码: 上图在第一个和第三个添加了一个开关和滑动条

_svImages = [[RYImagesScrollView alloc] initWithFrame:CGRectMake(0, 20, [UIScreen mainScreen].bounds.size.width, [UIScreen mainScreen].bounds.size.width*3/7) pageStyle:RYImageScrollerPageStyleCustom];
        _svImages.autoScrollTimeInterval = 4.0f;
        _svImages.contentMode = UIViewContentModeScaleAspectFill;
        _svImages.normalPageImage = [UIImage imageNamed:@"outdoor_icon_carousel"];
        _svImages.currentPageImage = [UIImage imageNamed:@"outdoor_icon_carousel_selected"];

self.svImages.imageURLs = @[
                            @"http://cc.cocimg.com/api/uploads/20170407/1491531818350790.png",
                            @"http://cc.cocimg.com/api/uploads/20170407/1491531897388821.png",
                            @"http://cc.cocimg.com/api/uploads/20170407/1491531754597727.png",
                            @"http://cc.cocimg.com/api/uploads/20170407/1491531459990792.png",
                            @"http://cc.cocimg.com/api/uploads/20170407/1491531504501824.jpg"
                            ];

    //这里的意思是在第一页和第三页 添加自定义蒙版视图
    self.svImages.attachIndexArr = @[
                                     @0,
                                     @2
                                     ];
    //这里的意思是在第一页和第三页的 添加自定义蒙版视图数组   蒙版会自适应轮播控件的大小  如果需要自定义位置  最好用一个背景透明的容器装下
    self.svImages.attachViewArr = @[
                                    [[UISwitch alloc] init],
                                    [[UISlider alloc] init]
                                    ];

方法:

初始化:

/**
 初始化方法   并设置分页样式

 @param style 分页样式
 */
- (instancetype)initWithFrame:(CGRect)frame pageStyle:(RYImageScrollerPageStyle)style;

分页样式

typedef NS_ENUM(NSInteger, RYImageScrollerPageStyle) {
    /**
     系统分页样式
     */
    RYImageScrollerPageStyleNormal = 99,
    /**
     用户自定义分页样式
     */
    RYImageScrollerPageStyleCustom = 100
};

其他参数

/**
 *  图片数组
 */
@property (nonatomic, strong) NSArray <NSString *> *imageURLs;
/**
 *  需要添加辅助view的序号数组 与 attachViewArr 一一对应
 */
@property (nonatomic, strong) NSArray <NSNumber *> *attachIndexArr;
/**
 *  辅助View数组
 */
@property (nonatomic, strong) NSArray <UIView *> *attachViewArr;
/**
 *  滚动时间间隔   默认2s
 */
@property (nonatomic, assign) CGFloat autoScrollTimeInterval;
/**
 *  默认 UIViewContentModeScaleAspectFill
 */
@property (nonatomic, assign) UIViewContentMode contentMode;
/**
 非当前展示页的分页图片  仅在 RYImageScrollerPageStyleCustom 下生效
 */
@property (nonatomic, strong) UIImage *normalPageImage;
/**
 当前页的分页图片   仅在 RYImageScrollerPageStyleCustom 下生效
 */
@property (nonatomic, strong) UIImage *currentPageImage;
/**
 *  点击图片的回调
 */
@property (nonatomic, copy) ImageScrollHandler handler_imageClick;
/**
 *  每次滚动完的回调
 */
@property (nonatomic, copy) ImageScrollHandler handler_scrollCallBack;

Last updated