Swift - 页控件(UIPageControl)的用法

前端之家收集整理的这篇文章主要介绍了Swift - 页控件(UIPageControl)的用法前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
使用页控件可以用来展示多个桌面。比如很多应用第一次登陆时,会在开始页面使用页控件来介绍功能,通过左右滑动来切换页。
通常我们使用UIPageControl和UIScrollView相互结合来实现多页切换,滑动页面时页控件标签(即页面下方的小白点)会更新到对应的页面。而直接点击页标签时,滚动条也会滚到相应的页。 @H_301_4@
UIPageControl的当前页小圆点和非当前小圆点的颜色是可以设置的,同时如果只有一页的时候也可以选择是否显示圆点 @H_301_4@

@H_301_4@
效果图如下: @H_301_4@
@H_301_4@
@H_301_4@ @H_301_4@

@H_301_4@
代码如下: @H_301_4@ @H_301_4@

import UIKit @H_301_4@
@H_301_4@ @H_502_45@class ViewController : UIViewController , UIScrollViewDelegate { @H_301_4@
@H_301_4@
//界面设计元素引用 @H_301_4@
@IBOutlet var pageControl: UIPageControl ! @H_301_4@
scrollView: UIScrollView ! @H_301_4@
@H_301_4@
//需要显示页面内容 @H_301_4@
courses = [ @H_301_4@
[ "name" : "Swift" "pic" "swift.png" ], @H_301_4@
"ObjectC" "oc.jpg" 301_4@
"Java" "java.png" ] @H_301_4@
] @H_301_4@
@H_301_4@
override func viewDidLoad() { @H_301_4@
super .viewDidLoad() @H_301_4@
// Do any additional setup after loading the view,typically from a nib. @H_301_4@
@H_301_4@
@H_301_4@
//设置scrollView的内容总尺寸 @H_301_4@
scrollView.contentSize = CGSizeMake ( @H_301_4@
CGFloat ( CGRectGetWidth ( self .view.bounds)) * .courses.count), @H_301_4@
CGRectGetHeight .view.bounds) @H_301_4@
) @H_301_4@
//关闭滚动条显示 @H_301_4@
scrollView.showsHorizontalScrollIndicator = false @H_301_4@
scrollView.showsVerticalScrollIndicator = false @H_301_4@
scrollView.scrollsToTop = false @H_301_4@
//协议代理,在本类中处理滚动事件 @H_301_4@
scrollView.delegate = self @H_301_4@
//滚动时只能停留到某一页 @H_301_4@
scrollView.pagingEnabled = true @H_301_4@
//添加页面到滚动面板里 @H_301_4@
let size = scrollView.bounds.size @H_301_4@
for (seq,course) in courses.enumerate() { @H_301_4@
page = UIView () @H_301_4@
imageView= UIImageView (image: UIImage (named:course[ ]!)) @H_301_4@
page.addSubview(imageView); @H_301_4@
page.backgroundColor = UIColor .greenColor() @H_301_4@
lbl = UILabel (frame: CGRect (x: 0,y: 20,width: 100,height: 20)) @H_301_4@
lbl.text = course[ ] @H_301_4@
page.addSubview(lbl) @H_301_4@
@H_301_4@
page.frame = (x: (seq) * size.width,y: 0, @H_301_4@
width: size.width,height: size.height) @H_301_4@
scrollView.addSubview(page) @H_301_4@
} @H_301_4@
@H_301_4@
//页控件属性 @H_301_4@
pageControl.backgroundColor = .clearColor() @H_301_4@
pageControl.numberOfPages = courses.count @H_301_4@
pageControl.currentPage = 0 @H_301_4@
//设置页控件点击事件 @H_301_4@
pageControl.addTarget( "pageChanged:" UIControlEvents . ValueChanged ) @H_301_4@
} @H_301_4@
@H_301_4@
didReceiveMemoryWarning() { @H_301_4@
.didReceiveMemoryWarning() @H_301_4@
// Dispose of any resources that can be recreated. @H_301_4@
} @H_301_4@
@H_301_4@
//UIScrollViewDelegate方法,每次滚动结束后调用 @H_301_4@
scrollViewDidEndDecelerating(scrollView: !) { @H_301_4@
//通过scrollView内容的偏移计算当前显示的是第几页 @H_301_4@
page = Int (scrollView.contentOffset.x / scrollView.frame.size.width) @H_301_4@
//设置pageController的当前页 @H_301_4@
pageControl.currentPage = page @H_301_4@
} @H_301_4@
@H_301_4@ @H_99_404@//点击页控件时事件处理 @H_301_4@
pageChanged(sender: ) { @H_301_4@
//根据点击的页数,计算scrollView需要显示的偏移量 @H_301_4@
frame = scrollView.frame @H_301_4@
frame.origin.x = frame.size.width * (sender.currentPage) @H_301_4@
frame.origin.y = 0 @H_301_4@
//展现当前页面内容 @H_301_4@
scrollView.scrollRectToVisible(frame,animated: true ) @H_301_4@

猜你在找的Swift相关文章