1.創(chuàng)建滾動(dòng)視圖(UIScrollView)
-
聲明為全局變量
var scr :UIScrollView! = nil
-
初始化及其屬性設(shè)置
scr = UIScrollView(frame: CGRect(x: 0, y: 100, width: self.view.frame.size.width, height: 300)) //設(shè)置內(nèi)容區(qū)域大小 scr.contentSize = CGSize(width:self.view.frame.size.width * 5,height:300) //是否整頁翻動(dòng) scr.isPagingEnabled=true //觸壁反彈 scr.bounces=false //添加到主視圖 self.view.addSubview(scr)
-
將圖片添加到滾動(dòng)視圖上
1.百度下載圖片退盯,命名為1钳垮,2贬堵,3呐矾,4,5导匣,格式為jpg阱飘,拖到工程中
2.代碼實(shí)現(xiàn)for index in 1...5 { //獲取圖片名字 let name = "\(index).jpg" let image = UIImage(named:name) let x = CGFloat(index - 1) * self.view.frame.size.width //初始化UIImageView let imageV = UIImageView(frame: CGRect(x:x, y:0, width: self.view.frame.size.width, height: 300.0)) //為image添加圖片 imageV.image = image //添加到滾動(dòng)視圖上 scr.addSubview(imageV) scr.delegate = self // 設(shè)置代理 }
2.創(chuàng)建UIPageControl
-
聲明為全局變量
var page : UIPageControl! = nil
-
初始化及其屬性設(shè)置
//初始化UIPageControl page = UIPageControl(frame: CGRect(x: 100, y: 350, width: self.view.frame.size.width-200, height: 30)) //總共有多少頁 page.numberOfPages = 4 //當(dāng)前是多少頁 page.currentPage = 0 //添加方法 page.addTarget(self, action: #selector(pageAction(page:)), for: .valueChanged) //未選中的滑塊顏色 page.pageIndicatorTintColor=UIColor.white //選中的滑塊顏色 page.currentPageIndicatorTintColor=UIColor.black //添加到主視圖 self.view.addSubview(page)
-
添加方法
func pageAction(page:UIPageControl){ let index = page.currentPage let point = CGPoint(x: CGFloat(index) * self.view.frame.size.width, y: 0) //修改偏移量 scr.setContentOffset(point, animated: true) }
3.創(chuàng)建Timer
-
聲明為全局變量
var timer : Timer! = nil
-
初始化
//每個(gè)屬性的含義 //1.間隔時(shí)間 //2.方法的執(zhí)行對(duì)象 //3.執(zhí)行的方法 //4.配置信息渠欺,類似備注 //5.true 循環(huán)執(zhí)行 false 執(zhí)行一次 self.timer=Timer.scheduledTimer(timeInterval: 1, target: self, selector: #selector(timerAction), userInfo: nil, repeats: true) //開啟定時(shí)器 self.timer.fire()
-
添加方法
func timerAction(){ //獲取到當(dāng)前的offset let offset = self.scr.contentOffset let width = self.view.frame.size.width //讓scrollerView進(jìn)行滑動(dòng) scr.setContentOffset(CGPoint(x:offset.x + width,y:offset.y) , animated: true) //if 到第四個(gè)了,跳動(dòng)到第一個(gè) if scr.contentOffset.x >= width * 4 { let point = CGPoint(x: 0, y: 0)//第一個(gè)是0罗丰,0 scr.contentOffset = point } }
4.添加滑動(dòng)會(huì)執(zhí)行的方法
func scrollViewDidScroll(_ scrollView: UIScrollView) {
//獲取偏移量
let x = scr.contentOffset.x
let width = self.view.frame.size.width
//根據(jù)偏移量定位到第幾個(gè)點(diǎn)
if (x >= width * 4){
self.page.currentPage = 0
}else{
page.currentPage = Int(x / width)
}
}
5.添加開始拖拽神帅、結(jié)束拖拽方法
//開始拖拽
func scrollViewWillBeginDragging(_ scrollView: UIScrollView) {
self.timer.invalidate()
self.timer = nil
}
//結(jié)束拖拽
func scrollViewDidEndDecelerating(_ scrollView: UIScrollView) {
self.timer=Timer.scheduledTimer(timeInterval: 1, target: self, selector: #selector(timerAction), userInfo: nil, repeats: true)
// 一秒之后再執(zhí)行
let time = DispatchTime.now() + 1.0
DispatchQueue.main.asyncAfter(deadline:time){
if let _ = self.timer {
self.timer.fire()
}
}
}
6.效果圖
四張圖會(huì)自動(dòng)播放