加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Swift - 页控件(UIPageControl)的用法

发布时间:2020-12-14 07:20:39 所属栏目:百科 来源:网络整理
导读:使用页控件可以用来展示多个桌面。比如很多应用第一次登陆时,会在开始页面使用页控件来介绍功能,通过左右滑动来切换页。 通常我们使用UIPageControl和UIScrollView相互结合来实现多页切换,滑动页面时页控件标签(即页面下方的小白点)会更新到对应的页面
使用页控件可以用来展示多个桌面。比如很多应用第一次登陆时,会在开始页面使用页控件来介绍功能,通过左右滑动来切换页。
通常我们使用UIPageControl和UIScrollView相互结合来实现多页切换,滑动页面时页控件标签(即页面下方的小白点)会更新到对应的页面。而直接点击页标签时,滚动条也会滚到相应的页。
UIPageControl的当前页小圆点和非当前小圆点的颜色是可以设置的,同时如果只有一页的时候也可以选择是否显示圆点

效果图如下:

代码如下:

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读