IOS开发基础04(滑动轮播图)

//  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)

        }

    }

    

}





  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值