美文网首页Swift程序员
Swift - 封装无限轮播器

Swift - 封装无限轮播器

作者: LitterL | 来源:发表于2016-05-17 21:30 被阅读207次

    说明:

    最近开始新的项目了,不过这次是以为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地址

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

    相关文章

      网友评论

        本文标题:Swift - 封装无限轮播器

        本文链接:https://www.haomeiwen.com/subject/ajiirttx.html