【轮播图】SimpleImageSlider framework for iOS

SimpleImageSlider 中文说明文档

项目地址:https://github.com/pangpingfei/SimpleImageSlider

一个用Swift写的用于iOS的简单易用的无限循环轮播图控件,没有任何依赖,参照提供的完整Demo工程你可以无比轻松地使用它!

Demo.gif

要求

  • iOS 8.0 以上
  • Xcode 8.0 以上
  • Swift 3.0 以上

安装

使用Carthage (推荐)

中文简易教程Github](https://github.com/pangpingfei/SwiftBlog/blob/master/Others/Carthage.md) | [中文简易教程Jianshu

github "pangpingfei/SimpleImageSlider"
import SimpleImageSlider

Manually

  1. SimpleImageSlider.swift 拖到你的Xcode项目中。
  2. 恭喜!

使用概要

实现 'SimpleImageSliderData'

// 你自己的结构体或类
struct MyData {
    var id: String?
    var image: UIImage?
    var imageUrl: String?
}

extension MyData: SimpleImageSliderData {
    public func setImage(for imageView: UIImageView) {
        imageView.image = self.image
        // 在这个方法里你同样也可以加载网络图片
    }
}

创建 SimpleImageSlider

// 创建一个轮播图
let frame = CGRect(x: 0, y: 0, width: UIScreen.main.bounds.width, height: UIScreen.main.bounds.width/2)
slider = SimpleImageSlider(frame: frame, dateSource: self, delegate: self)
        
// 如果需要,你可以设置这些pageControl的属性
slider.currentPageIndicatorColor = nil //.black
slider.pageIndicatorColor = nil //.gray
slider.hidePageControlForSinglePage = true

//      slider = SimpleImageSlider(frame: frame)        
//  如果你用init(frame) 的方法创建的Slider,需要再设置数据源和代理。
//      slider.delegate = self
//      slider.dataSource = self
        
// 把轮播图添加到你的view
self.view.addSubview(slider)

// 如果你想停止或开始自动轮播,设置这个属性
slider.isEnableAutoSlide = false

实现 'SimpleImageSliderDataSource'

func simpleImageSlider(_ imageSlider: SimpleImageSlider) -> [SimpleImageSliderData] {
    return data
}

fileprivate var data = [MyData]()

// 准备数据源
for i in 1...3 {
    if let image = UIImage(named: "\(i)") {
        data.append(MyData(id: "\(i)", image: image, imageUrl: nil))
    } else {
        break
    }
}

实现 'SimpleImageSliderDelegate'

func simpleImageSlider(_ imageSlider: SimpleImageSlider, didTouchImageAt imageSliderData: SimpleImageSliderData) {
    // 图片被点击后,在这里你可以做你想要做的事情
    let msg = "simpleImageSlider didTouchImageAt \((imageSliderData as! MyData).id!)"
    print(msg)
}

注意!!!

// 如果你的数据源发生变化了,使用reloadData即可刷新。
slider.reloadData()
// 如果你要销毁释放,最好先把isEnableAutoSlide设置为false
// 同样的,如果你的View不在可见状态,你应该设置为false,在可见时再设置为true。
// 就像controller, 在'viewDidAppear'中: slider.isEnableAutoSlide = true, 在'viewWillDisappear'中: slider.isEnableAutoSlide = false
slider.isEnableAutoSlide = false

更多……

请用Git克隆项目后参考演示工程。

许可

MIT,详见 LICENSE file

项目地址:https://github.com/pangpingfei/SimpleImageSlider

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

推荐阅读更多精彩内容

  • SimpleLoadingView 中文说明文档 项目地址:https://github.com/pangping...
    竹菜板阅读 154评论 0 1
  • 首先介绍下自己的背景: 我11年左右入市到现在,也差不多有4年时间,看过一些关于股票投资的书籍,对于巴菲特等股神的...
    瞎投资阅读 5,762评论 3 8
  • ![Flask](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAW...
    极客学院Wiki阅读 7,269评论 0 3
  • 不知不觉易趣客已经在路上走了快一年了,感觉也该让更多朋友认识知道易趣客,所以就谢了这篇简介,已做创业记事。 易趣客...
    Physher阅读 3,441评论 1 2
  • 双胎妊娠有家族遗传倾向,随母系遗传。有研究表明,如果孕妇本人是双胎之一,她生双胎的机率为1/58;若孕妇的父亲或母...
    邺水芙蓉hibiscus阅读 3,722评论 0 2