zoukankan      html  css  js  c++  java
  • 一个无限循环轮播图 HCCycleView

    最近比较有时间,把之前项目自己写的一个轮播图整理一下,封装起来。
    该库支持网络图片和本地图片展示,同时也支持代码创建和xib创建。

    使用方法

    该库需要用到SDWebImage对图片进行下载缓存操作,所以需要集成SDWebImage第三方库
    将库中的HCCycleView文件夹拖入你的文件后即可使用
    在使用的地方引入“HCCycleView.h”

    • 代码创建方式
     HCCycleView *cycleScrollView = [HCCycleView cycleViewWithFrame:CGRectMake(0, 64, SCREEN_WIDTH, 205) delegate:self placeholderImage:PLACEHOLDER_IMAGE];
    
    
    • xib 创建方式

      • 先拖入一个UIView控件
        拖入一个UIVIew控件.png

      • 将UIView的类设置成HCCycleView

        设置UIView控件的类.png

      • 将该View拖线到你要使用的控制器里

        引入设置好的HCCycleView-1.png

        引入设置好的HCCycleView-2.png

    部分属性和方法说明

    // 是否自动轮播
    @property (nonatomic,assign) BOOL isAutoScroll;
    // 自动轮播的时间间隔
    @property (nonatomic,assign) NSTimeInterval timerInterVal;
    // 图片占位图
    @property (nonatomic,strong) UIImage *placeholderImage;
    /*** 图片数组 */
    @property (nonatomic,copy) NSArray *imageArrays;
    
    // pageControl类型
    @property (nonatomic,assign) HCPageControlType pageControlType;
    // pageControl的显示位置
    @property (nonatomic,assign) HCPageControlPosition pageControlPosition;
    // pageControl的dot之间间隔大小
    @property (nonatomic,assign) CGFloat pageControlDotInterSpace;
    // pageControl的dot的大小
    @property (nonatomic,assign) CGSize pageControlDotSize;
    // pageControl的dot的边框宽度
    @property (nonatomic,assign) CGFloat pageControlDotBorderWidth;
    // pageControl的自定义frame
    @property (nonatomic,assign) CGRect pageControlCustomFrame;
    // pageControl距离底部的距离
    @property (nonatomic,assign) CGFloat pageControlBottom;
    // pageControl的pageControlColor
    @property (nonatomic,strong) UIColor *pageControlColor;
    // pageControl的currentPageControlColor
    @property (nonatomic,strong) UIColor *currentPageControlColor;
    
    /*** 推荐初始化方法 */
    + (instancetype)cycleViewWithFrame:(CGRect)frame delegate:(id <HCCycleViewDelegate>)delegate placeholderImage:(UIImage *)placeholderImage;
    
    /*** 点击图片Block */
    @property (nonatomic,copy) void (^didClickPicture)(NSInteger);
    
    /*** 滚动到某一页方法 (从0开始算起) */
    - (void)scrollToIndex:(NSInteger)index animate:(BOOL)animate;
    

    具体使用代码

    代码创建

    
     // 图片 本地图片和网络图片均支持
        NSArray *imageArr = @[@"http://image72.360doc.com/DownloadImg/2014/04/2301/40991904_7.jpg",
                              @"http://img4.duitang.com/uploads/blog/201406/28/20140628174102_R8Hhd.thumb.700_0.jpeg",
                              [UIImage imageNamed:@"local_image.jpg"],
                              @"http://uploadfile.bizhizu.cn/2014/0507/20140507103639644.jpg",
                              @"http://image55.360doc.com/DownloadImg/2012/10/2517/27773420_5.jpg",
                              @"http://pic62.nipic.com/file/20150303/17961491_092446597000_2.jpg"
                              ];
        
        HCCycleView *cycleScrollView = [HCCycleView cycleViewWithFrame:CGRectMake(0, 64, SCREEN_WIDTH, 205) delegate:self placeholderImage:PLACEHOLDER_IMAGE];
        cycleScrollView.isAutoScroll = NO;
        cycleScrollView.currentPageControlColor = [UIColor whiteColor];
        cycleScrollView.pageControlColor = [UIColor purpleColor];
        cycleScrollView.pageControlType = HCPageControlTypeBorder;
    //    cycleScrollView.pageControlPosition = HCPageControlPositionRight;
        cycleScrollView.pageControlCustomFrame = CGRectMake(10, 180, 100, 20);
        cycleScrollView.pageControlDotBorderWidth = 1;
        cycleScrollView.pageControlDotInterSpace = 20;
        cycleScrollView.pageControlDotSize = CGSizeMake(10, 10);
        cycleScrollView.imageArrays = imageArr;
        [self.view addSubview:cycleScrollView];
    

    xib创建

        // 图片 本地图片和网络图片均支持
        NSArray *imageArr = @[@"http://image72.360doc.com/DownloadImg/2014/04/2301/40991904_7.jpg",
                              @"http://img4.duitang.com/uploads/blog/201406/28/20140628174102_R8Hhd.thumb.700_0.jpeg",
                              [UIImage imageNamed:@"local_image.jpg"],
                              @"http://uploadfile.bizhizu.cn/2014/0507/20140507103639644.jpg",
                              @"http://image55.360doc.com/DownloadImg/2012/10/2517/27773420_5.jpg",
                              @"http://pic62.nipic.com/file/20150303/17961491_092446597000_2.jpg"
                              ];
    
        // xib创建
        self.cycleView.isAutoScroll = YES;
        self.cycleView.delegate = self;
        self.cycleView.timerInterVal = 5;
        self.cycleView.placeholderImage = PLACEHOLDER_IMAGE;
        self.cycleView.pageControlType = HCPageControlTypeNone;
        self.cycleView.currentPageControlColor = [UIColor whiteColor];
        self.cycleView.pageControlColor = [UIColor purpleColor];
        self.cycleView.pageControlPosition = HCPageControlPositionMiddle;
        self.cycleView.imageArrays = imageArr;
    

    演示

    demo.gif

    如果需要看详细的代码,可以到我的github上去看,这里就不一一贴出来了。
    github地址:https://github.com/ACoderNHC/HCCycleView

  • 相关阅读:
    gitblit安装使用
    谷歌AMP和百度MIP是什么鬼?
    微信小程序开发体验
    设计模式之策略模式
    【前端安全】JavaScript防XSS攻击
    【前端安全】JavaScript防流量劫持
    设计模式之“中间件模式”
    设计模式之Mixin模式
    设计模式之观察者模式
    设计模式之单例模式
  • 原文地址:https://www.cnblogs.com/hongchong/p/6022018.html
Copyright © 2011-2022 走看看