Skip to content

QuintGao/GKCycleScrollView

Repository files navigation

GKCycleScrollView

Build Status Pod Version Pod Platform Pod License languages support

iOS轻量级图片、文字轮播器,支持自定义

GKCycleScrollView是一款基于UIScrollView封装的轮播器,参考了NewPagedFlowView的实现方法,功能更加强大,使用更加便捷

特性

  • 无第三方侵入,轻量级组件
  • 支持自动轮播,无限轮播
  • 支持cell缩放,设置上下左右间距
  • 支持自定义当前cell的显示尺寸
  • 支持自定义cell,自定义pageControl
  • 支持cell透明度渐变
  • 支持Masonry、SDAutolayout等第三方自动布局库
  • 支持任何图片加载库,如(SDWebImage、YYWebImage)

使用方法

1、创建GKCycleScrollView并设置数据源

GKCycleScrollView *cycleScrollView = [[GKCycleScrollView alloc] initWithFrame:CGRectMake(0, GK_STATUSBAR_NAVBAR_HEIGHT, kScreenW, 130)];
cycleScrollView.dataSource = self;
[self.view addSubview:cycleScrollView];

2、实现数据源方法

#pragma mark - GKCycleScrollViewDataSource
- (NSInteger)numberOfCellsInCycleScrollView:(GKCycleScrollView *)cycleScrollView {
    return self.dataArr.count;
}

- (GKCycleScrollViewCell *)cycleScrollView:(GKCycleScrollView *)cycleScrollView cellForViewAtIndex:(NSInteger)index {
    GKCycleScrollViewCell *cell = [cycleScrollView dequeueReusableCell];
    if (!cell) {
        cell = [GKCycleScrollViewCell new];
    }
    [cell.imageView sd_setImageWithURL:[NSURL URLWithString:dict[@"img_url"]]];
    cell.imageView.contentMode = UIViewContentModeScaleAspectFill;

    return cell;
}

3、调用reloadData方法,刷新数据源

[self.cycleScrollView reloadData]

效果图

说明 效果图
横向轮播 horizontal
纵向轮播 vertical
卡片效果 card
仿QQ聊天 qqchat

说明

GKCycleScrollView - 一个轻量级的自定义轮播图组件

版本更新

  • 2024.03.05 1.2.3 修复布局改变时显示异常的问题 #31
  • 2024.01.03 1.2.2 修复调用[NSNull null]可能崩溃的问题 #30
  • 2022.07.24 1.2.1 修复bug #25 #26
  • 2022.07.06 1.2.0 1、修复bug #22 2、修复自动滚动时滑动跳页的问题
  • 2021.06.01 1.1.0 修复Masonry布局时可能出现的不显示问题,优化加载逻辑
  • 2021.02.24 1.0.6 优化代码,防止crash,增加滑动百分比代理
  • 2021.02.22 1.0.5 修复xib加载时可能导致的布局错乱问题
  • 2021.01.27 1.0.3 修复某些情况下cell不能滑动的bug
  • 2020.12.07 1.0.1 修复cell子视图点击处理bug
  • 2020.11.30 1.0.0 修复cell上添加其他视图不能点击的bug
  • 2020.01.03 0.0.5 修复手动滑动不流畅问题,修复反向滑动停止后可能错乱问题
  • 2019.11.22 0.0.4 修复自动轮播跳动问题及设置defaultSelectIndex后滚动错误问题
  • 2019.10.11 添加自定义pageControl