您的位置:首页 > 移动开发 > Swift

Swift之UIScrollView和UIPageControl

2015-08-27 14:24 441 查看
let width:CGFloat = 375
let height:CGFloat = 668
class ViewController: UIViewController,UIScrollViewDelegate {

var pageControl:UIPageControl?
var tmpSV:UIScrollView?

override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.

self.setScrollView()
self.setPageControl()
}

override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}

func setScrollView() {
var scrollView = UIScrollView()
scrollView.frame = CGRectMake(0, 20, self.view.frame.size.width, 150)
//设置内容大小
scrollView.contentSize = CGSizeMake(CGFloat(width * 6), 150)
//设置起始偏移量
scrollView.contentOffset = CGPointMake(0, 0)
//隐藏水平指示条
scrollView.showsHorizontalScrollIndicator = false
//隐藏竖直指示条
scrollView.showsVerticalScrollIndicator = false
//开启分页效果
scrollView.pagingEnabled = true
//设置代理
scrollView.delegate = self

self.view.addSubview(scrollView)

tmpSV = scrollView

let colors:[UIColor] = [UIColor.redColor(),UIColor.orangeColor(),UIColor.yellowColor(),UIColor.greenColor(),UIColor.blueColor(),UIColor.purpleColor()]
for i in 0..<6 {
var tmpView:UIView = UIView(frame: CGRectMake(width * CGFloat(i), 0, width, 150))
tmpView.backgroundColor = colors[i]
scrollView.addSubview(tmpView)
}
}

func setPageControl() {
pageControl = UIPageControl(frame: CGRectMake(self.view.center.x - 60, 120, 120, 20))
//设置显示的页数
pageControl?.numberOfPages = 6
//设置显示的起始页的索引
pageControl?.currentPage = 0
//设置单页时隐藏
pageControl?.hidesForSinglePage = true
//设置显示颜色
pageControl?.currentPageIndicatorTintColor = UIColor.greenColor()
//设置页背景指示颜色
pageControl?.pageIndicatorTintColor = UIColor.lightGrayColor()
//添加事件
pageControl?.addTarget(self, action: Selector("pageControlChanged:"), forControlEvents: UIControlEvents.ValueChanged)

self.view.addSubview(pageControl!)

}
//pageControl的触发事件
func pageControlChanged(pageControl:UIPageControl) {
var page = pageControl.currentPage

println("当前显示的是第\(page+1)页")
tmpSV!.contentOffset = CGPointMake(width * CGFloat(page), 0)
//        var frame = tmpSV!.frame
//        frame.origin.x = width * CGFloat(page)
//        tmpSV!.scrollRectToVisible(frame, animated: true)
}

//scrollView Delegate
func scrollViewDidEndDecelerating(scrollView: UIScrollView) {
var offset = scrollView.contentOffset.x / width
pageControl!.currentPage = Int(offset)
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: