Swift - 封装无限轮播器

说明:

最近开始新的项目了,不过这次是以为Swift做为新项目的开发语言,而不是OC了,然后在项目中有一些地方用到了无限轮播器,看了看以前的代码都是用OC去写,这里呢我简易的封装了一个,如果能帮的上大家的忙,那是在好不过了,如果不能,就当自己练练手也行,至于无限轮播器它是什么,我这里就不作简单的介绍了,上图为例:

image.gif

代码

1、我们先不说别的先用上它在说吧,这里的话,我直接创建一个swift项目,然后通过CocoaPods集成SVProgressHUD,SDWebImage这两个框架,后面有用到,然后在桥接头文件中导入头文件,在info.plist文件中设置http请求,因为我们后面是可以通过字符串UIImageNSUrl这三种类型来请求图片的,配置这些之后,进入ViewController,这里我是直接使用项目创建的原始状态,没有去创建控制器或一些其他的,代码如下:

class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.

        addChildScorll()
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }


    private func  addChildScorll(){
        //1、创建无限轮播器   设置frame
        let scroll =  InifiteScrollView(frame: CGRectMake(0,0,view.frame.size.width,200))

        //2、添加图片数据   可以看到这里的图片有事URL也有是UIImage也有直接为字符串的
        scroll.images = [
            NSURL(string: "https://picjumbo.imgix.net/HNCK2415.jpg?q=40&w=1650&sharp=30")!,
            NSURL(string: "https://i0.wp.com/picjumbo.com/wp-content/uploads/HNCK5165.jpg?zoom=2&resize=259%2C148&ssl=1")!,
            NSURL(string: "https://i1.wp.com/picjumbo.com/wp-content/uploads/HNCK5058.jpg?zoom=2&resize=259%2C148&ssl=1")!,
            UIImage(named: "background_1")!,
            "background_2"
        ]

        //3、设置页脚的颜色
        scroll.pageControl.currentPageIndicatorTintColor = UIColor.redColor()
        scroll.pageControl.pageIndicatorTintColor =  UIColor.grayColor()
        //设置间断时间   默认为2秒
        //        scroll.interval = 3
        //设置滚动方向  默认为左右
        //        scroll.scrolldirection = .InifiteScrollDirectionVertical
        //设置代理
        scroll.delegate = self
        //4、添加到视图上去
        view.addSubview(scroll)
    }
}

2、如果是需要监听图片的点击那么你就需要实现下面的代码了(其实这只是一个协议而已,你监听就OK了):

extension ViewController:InifiteScrollViewDelegate{
    func inifiteScrollView(inifiteScrollView: InifiteScrollView, didClickImageAtIndex: Int) {
        SVProgressHUD.showWithStatus("点击了第\(didClickImageAtIndex+1)张图片")



        let delayInSeconds = 1.0
        let popTime = dispatch_time(DISPATCH_TIME_NOW,
                                    Int64(delayInSeconds * Double(NSEC_PER_SEC))) // 1
        dispatch_after(popTime, dispatch_get_main_queue()) {
            SVProgressHUD.dismiss()
        }
    }
}

其实用起来就是这样的简单,Demo地址

                 本章到此结束
            欢迎各位码友随意转载并指正
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,305评论 4 61
  • 最近常常被周洋称赞我的能力很强。一个神一样存在的人总是赞我,我还是挺有压力的,因为知道自己没那么好,所以就会努力反...
    常拓阅读 279评论 4 7
  • 梦醒清晨入战壕,残迹犹存诉古豪。回眸万家炊烟袅,誓不今朝复旧朝。
    醉心彦阅读 234评论 0 3
  • 现在无论是虚拟互联网产品开发还是实体新品的开发,都离不开消费者调研。 做一个有效的消费者调研从某种程度上可以规避一...
    Sebrenna阅读 900评论 0 0
  • 对于lithromantic这种病,在我看来他是真真的存在的。也不能称为是病吧,称为病可能就有点太过于偏激了,百度...
    田秋风阅读 727评论 0 2