Swift - 封装无限轮播器

说明:

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

Swift - 封装无限轮播器_第1张图片
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地址

                 本章到此结束
            欢迎各位码友随意转载并指正

你可能感兴趣的:(Swift - 封装无限轮播器)