Latest 1.3.0
Homepage https://github.com/poos/SXCycleView
License MIT
Platforms ios 7.1, requires ARC
Dependencies SDWebImage
Authors

SXCycleView 轮播图

博客文章地址https://my.oschina.net/bieshixuan/blog/789622

!!!因为苹果CollectionView回收机制更改,所以改用了ScrollView,更快速,更节省内存!!!

!!!a. 使用pod 导入包时候概率出现使用问题

可以到SXCycleView文件夹下的文件加入工程即可,注意工程用到了SDWebImage

b. import SXCycleView.h

//最新版本改为类方法
[SXCycleView initWithFrame:CGRectMake(10, 200, 300, 200)
              imageUrlArrs:@[  ]
                    titles:@[  ]
                clickBlock:^(NSInteger currentIndex) {
                    NSLog(@"%ld", currentIndex);
                }]];

任何问题欢迎留言

轮播图

使用collectionView可以很方便的创建轮播图,并且利用collectionViewCell的复用,很方便的管理,原理也很简单

a,把轮播图的元数据扩大,123123123…123123123

b,创建视图把初始位置设置为中间点

c,处理滚动到头时候

.自己的想法和优雅的点子

想法1,数据源的读取并不优雅

数据源是个很明显的双向循环,这个结构跟以前"听说"的双向链表那么的契合,为什么不使用双向链表作为数据源呢

想法2,collection设置99999整的好么,表示我是一个崇尚优雅的猿

本来就是轮播嘛,滑动的时候怎么左右滚,划,总不会需要超过3个的cell吧

Then->

假如我有一个链表,假如我只使用3个cell,那么我可以写成一个循环滚动的轮播图吗

原理应该是

每次滑动结束之后就回到中间的那一张

左划3个cell的数据源整体向左,右划类推

interface

@property (nonatomic, assign) BOOL autoScroll;                //是否自动滚动,默认Yes
@property (nonatomic, assign) CGFloat autoScrollTimeInterval; //自动滚动间隔时间,默认5s

/**
 开放的 pageControl
 ! 可以set一个新的pageControl以替换
 ! 亦可简单重设frame
 ! 设置为nil即不显示
 */
@property (nonatomic, weak) UIPageControl *pageControl;

//image数组初始化
+ (instancetype)initWithFrame:(CGRect)frame imageArrs:(NSArray<UIImage *> *)imageArr clickBlock:(ClickedImageBlock)block;
+ (instancetype)initWithFrame:(CGRect)frame imageArrs:(NSArray<UIImage *> *)imageArr titles:(NSArray *)titleArr clickBlock:(ClickedImageBlock)block;

//url数组初始化
+ (instancetype)initWithFrame:(CGRect)frame imageUrlArrs:(NSArray<NSString *> *)urlArr clickBlock:(ClickedImageBlock)block;
+ (instancetype)initWithFrame:(CGRect)frame imageUrlArrs:(NSArray<NSString *> *)urlArr titles:(NSArray *)titleArr clickBlock:(ClickedImageBlock)block;

Latest podspec

{
    "name": "SXCycleView",
    "version": "1.3.0",
    "summary": "you can create a cycleview for you app",
    "homepage": "https://github.com/poos/SXCycleView",
    "license": "MIT",
    "authors": {
        "iShown": "[email protected]"
    },
    "platforms": {
        "ios": "7.1"
    },
    "source": {
        "git": "https://github.com/poos/SXCycleView.git",
        "tag": "1.3.0"
    },
    "source_files": "Example/SXCycleView/SXCycleView/**/*.{h,m}",
    "requires_arc": true,
    "dependencies": {
        "SDWebImage": [
            "~> 3.8"
        ]
    },
    "subspecs": [
        {
            "name": "SXCycleView",
            "source_files": "Example/SXCycleView/SXCycleView/**/*.{h,m}",
            "public_header_files": "Example/SXCycleView/SXCycleView/**/*.h",
            "dependencies": {
                "SDWebImage": [
                    "~> 3.8"
                ]
            }
        }
    ]
}

Pin It on Pinterest

Share This