// ViewController.swift
import UIKit
class ViewController: UIViewController {
var pageControl:UIPageControl?
override func viewDidLoad() {
super.viewDidLoad()
//UIScreen.mainScreen().bounds.size.width
//屏幕的宽高
let width = view.frame.size.width
let height = view.frame.size.height
//使用UIView的创建方法创建一个滑动视图
let scrollView = UIScrollView(frame: CGRectMake(0,0,width,height))
scrollView.backgroundColor = UIColor.yellowColor()
//添加scrollView到屏幕上
view.addSubview(scrollView)
// 设置滑动视图的滚动区域:contentSize
// 只有contentsize大于scrollview本身的大小才可以滑动
scrollView.contentSize = CGSizeMake(9*width, 0)
//依次创建UIimagView并设置好图片放置在scrollview上面
for i in 1..<10{
let imageName:String
//在左右两端分别再设置一次第一张和最后一张图片
//从而实现当滑动到第一张或最后一张时再滑动可滚动到最后一张或第一张图片
if i == 9 {
imageName = "h1.jpeg"
} else if i == 1 {
imageName = "h7.jpeg"
} else {
imageName = "h\(i-1).jpeg"
}
let image = UIImage(named: imageName)
let imageView = UIImageView(frame: CGRectMake(CGFloat(i-1)*width, 0, width, height))
//设置imageview显示的图片
imageView.image = image
scrollView.addSubview(imageView)
}
//设置偏移量
scrollView.contentOffset = CGPointMake(width*4, 0)
//设置是否整屏翻转
scrollView.pagingEnabled = true
//关闭水平滑动条
scrollView.showsHorizontalScrollIndicator = false
//关闭边界回弹效果
scrollView.bounces = false
//代理(监听整个滑动过程)-协议(提供了整个滑动过程的方法)
scrollView.delegate = self
//创建页面指示器(UIPageControl)
pageControl = UIPageControl(frame: CGRectMake(150,height-50,90,20))
//设置总共几个点(页面指示器有几个)
pageControl!.numberOfPages = 7
//设置当前显示的点
pageControl!.currentPage = 3
//设置指示器的颜色
pageControl!.pageIndicatorTintColor = UIColor.redColor()
//设置当前显示的点的颜色
pageControl!.currentPageIndicatorTintColor = UIColor.greenColor()
view.addSubview(pageControl!)
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}
}
/*遵守协议
extension 本类名:协议名
{
实现协议的方法
}
*/
extension ViewController:UIScrollViewDelegate{
//滑动过程中调用
func scrollViewDidScroll(scrollView: UIScrollView) {
// print("x = \(scrollView.contentOffset.x),y = \(scrollView.contentOffset.y)")
}
//滑动停止的时候调用
func scrollViewDidEndDecelerating(scrollView: UIScrollView) {
let width = view.frame.size.width
let height = view.frame.size.height
let scrollViewWidth = scrollView.frame.size.width
let num = (scrollView.contentOffset.x - width)/scrollViewWidth
//两端图片滑动处理
if num == 7 {
scrollView.contentOffset = CGPointMake(width, 0)
pageControl?.currentPage = 0
} else if num == -1 {
scrollView.contentOffset = CGPointMake(width*7, 0)
pageControl?.currentPage = 6
} else {
pageControl?.currentPage = Int(num)
}
}
}