//
// ViewController.swift
// banner滚动视图
import UIKit
let WIDTH = CGFloat(UIScreen.mainScreen().bounds.size.width)
let HEIGHT = CGFloat(UIScreen.mainScreen().bounds.size.height)
let pageCtr = UIPageControl()
let scrollView = UIScrollView()
var timer = NSTimer()
class ViewController: UIViewController,UIScrollViewDelegate {
override func viewDidLoad() {
super.viewDidLoad()
scrollView.frame = CGRectMake(0, 0, WIDTH, HEIGHT)
scrollView.contentSize = CGSizeMake(WIDTH*3, HEIGHT)
scrollView.backgroundColor = UIColor.whiteColor()
scrollView.delegate = self
scrollView.pagingEnabled = true
scrollView.showsHorizontalScrollIndicator = false
scrollView.showsVerticalScrollIndicator = false
scrollView.bounces = false
scrollView.contentOffset = CGPointMake(0, 0)
view.addSubview(scrollView)
for i in 1 ..< 4 {
let image = UIImageView()
image.frame = CGRectMake(WIDTH * CGFloat(i-1), 0, WIDTH, HEIGHT)
image.image = UIImage(named: "\(i).jpg")
image.backgroundColor = UIColor.cyanColor()
image.userInteractionEnabled = true
scrollView.addSubview(image)
}
pageCtr.frame = CGRectMake(100, HEIGHT-100, 200, 30)
pageCtr.backgroundColor = UIColor.cyanColor()
pageCtr.numberOfPages = 3
pageCtr.currentPage = 0
view.addSubview(pageCtr)
pageCtr.addTarget(self, action: #selector(ViewController.pressPageCtr), forControlEvents: UIControlEvents.ValueChanged)
self.turnOntimer()
}
func turnOntimer(){
timer = NSTimer.scheduledTimerWithTimeInterval(2.0, target: self, selector: #selector(ViewController.playImage), userInfo: nil, repeats: true)
NSRunLoop.currentRunLoop().addTimer(timer, forMode: NSRunLoopCommonModes)
}
func playImage(){
var number = scrollView.contentOffset.x / WIDTH+1
if number == 3 {
number = 0
}
scrollView.contentOffset = CGPointMake(number * WIDTH, 0)
pageCtr.currentPage = Int(number)
}
func pressPageCtr(){
let pageNum = pageCtr.currentPage
UIView.animateWithDuration(0.3) {
scrollView.contentOffset = CGPointMake(CGFloat(pageNum) * WIDTH, 0)
}
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
func scrollViewDidEndDecelerating(scrollView: UIScrollView) {
let point:CGFloat = scrollView.contentOffset.x
pageCtr.currentPage = Int(point / WIDTH)
}
}