Swift 3.0 实现图片轮播器

本文介绍了如何在Swift 3.0中实现图片轮播器,利用代理和闭包实现点击回调,详细讲解了关键代码,包括ScrollView的配置、定时器的使用以及页面切换逻辑。同时提到了Swift语法与Objective-C的区别。
摘要由CSDN通过智能技术生成

Swift 3.0 实现图片轮播器

一般手机App中都有轮播图的功能,最近学习Swift,就用Swift重新写了图片轮播器。
图片轮播器的实现方法一般分为两种:一种是用三张图片,通过改变显示的数据源来达到轮播的效果;另一种是通过在数据源的起始和结束位置分别插入数据源的最后一个元素和第一个元素,通过多增加的数据来达到轮播效果。第二种方法,本人认为太浪费性能,虽然也能实现轮播的效果,但是不建议使用,今天主要介绍第一种的实现原理和实现效果。
废话不多说,直接上代码
**定义PageControl显示样式**
enum UIPageControlShowStyle {
case UIPageControlShowStyleNone   // 不显示(默认值)
case UIPageControlShowStyleLeft   // 左侧
case UIPageControlShowStyleCenter // 中间
case UIPageControlShowStyleRight  // 右侧

}
在Swift中回调可以使用代理和闭包两种方法
定义点击回调的代理方法
protocol AdViewDelegate:NSObjectProtocol {
func callBack(_ index:NSInteger)
}
类的主要实现代码
class AdView: UIView,UIScrollViewDelegate {
fileprivate var moveTimer:Timer? // 私有可选型变量定时器
// 懒加载有以下两种写法,如果没有特殊操作,建议使用第一种
fileprivate lazy var adScrollView: UIScrollView = UIScrollView() // 私有懒加载变量滚动视图
fileprivate lazy var pageControl: UIPageControl = { // 私有懒加载变量pageControl
let page = UIPageControl()
return page
}()
var dataArray:[String]? { // 数据源数组(一般传模型对象数组)
didSet{ // 设置完成后调用
if dataArray != nil && (dataArray?.count)!>1 {
adScrollView.isScrollEnabled = true
leftImageIndex = dataArray!.count-1
centerImageIndex = 0
rightImageIndex = 1
leftImageView?.image = UIImage(named:dataArray![leftImageIndex])
centerImageView?.image = UIImage(named: dataArray![centerImageIndex])
rightImageView?.image = UIImage(named: dataArray![rightImageIndex])
startTime()
pageControl.numberOfPages = dataArray!.count
if pageControlShowStyle == .UIPageControlSho

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值