import UIKit
class ViewController: UIViewController,UIScrollViewDelegate {
@IBOutlet weak var scrollView: UIScrollView!
@IBOutlet weak var pagecontrol: UIPageControl!
var courses = [["name":"swift","pic":"icon"],["name":"java","pic":"navigationbar_pop"],["name":"object","pic":"icon"]]
override func viewDidLoad() {
super.viewDidLoad()
scrollView.contentSize = CGSize.init(width: (self.view.frame.size.width * CGFloat(self.courses.count)), height: CGFloat(self.view.frame.size.height))
print(scrollView.contentSize.width)
scrollView.contentOffset = CGPoint.init(x: 0, y: 0)
scrollView.showsVerticalScrollIndicator = false
scrollView.showsHorizontalScrollIndicator = false
scrollView.delegate = self
//滚动时只能停留到某一页
scrollView.isPagingEnabled = true
let size = scrollView.bounds.size
for (seq,conrse) in courses.enumerated(){
let pag = UIView()
pag.backgroundColor = UIColor.init(patternImage: UIImage(named:conrse["pic"]!)!)
pag.frame = CGRect.init(x: CGFloat(seq) * CGFloat(size.width), y: 0, width: size.width, height: size.height)
pagecontrol?.numberOfPages = courses.count
pagecontrol.currentPage = 0
pagecontrol?.currentPageIndicatorTintColor = UIColor.green
//设置页背景指示颜色
pagecontrol?.pageIndicatorTintColor = UIColor.lightGray
self.view.bringSubview(toFront: self.pagecontrol)
pagecontrol.addTarget(self, action: #selector(click(_ :)), for: .valueChanged)
}
}
func click(_ sender: UIPageControl){
//根据点击的页数,计算scrollView需要显示的偏移量
var frame = scrollView.frame
frame.origin.x = frame.size.width * CGFloat(sender.currentPage)
frame.origin.y = 0
//展现当前页面内容
scrollView.scrollRectToVisible(frame, animated: true)
}
func scrollViewDidEndDecelerating(_ scrollView: UIScrollView) {
let page = Int(scrollView.contentOffset.x / scrollView.frame.size.width)
//设置pagecontrol当前的页数
pagecontrol.currentPage = page
}
}
class ViewController: UIViewController,UIScrollViewDelegate {
@IBOutlet weak var scrollView: UIScrollView!
@IBOutlet weak var pagecontrol: UIPageControl!
var courses = [["name":"swift","pic":"icon"],["name":"java","pic":"navigationbar_pop"],["name":"object","pic":"icon"]]
override func viewDidLoad() {
super.viewDidLoad()
scrollView.contentSize = CGSize.init(width: (self.view.frame.size.width * CGFloat(self.courses.count)), height: CGFloat(self.view.frame.size.height))
print(scrollView.contentSize.width)
scrollView.contentOffset = CGPoint.init(x: 0, y: 0)
scrollView.showsVerticalScrollIndicator = false
scrollView.showsHorizontalScrollIndicator = false
scrollView.delegate = self
//滚动时只能停留到某一页
scrollView.isPagingEnabled = true
let size = scrollView.bounds.size
for (seq,conrse) in courses.enumerated(){
let pag = UIView()
pag.backgroundColor = UIColor.init(patternImage: UIImage(named:conrse["pic"]!)!)
pag.frame = CGRect.init(x: CGFloat(seq) * CGFloat(size.width), y: 0, width: size.width, height: size.height)
scrollView.addSubview(pag)
pagecontrol.backgroundColor = UIColor.blackpagecontrol?.numberOfPages = courses.count
pagecontrol.currentPage = 0
pagecontrol?.currentPageIndicatorTintColor = UIColor.green
//设置页背景指示颜色
pagecontrol?.pageIndicatorTintColor = UIColor.lightGray
self.view.bringSubview(toFront: self.pagecontrol)
pagecontrol.addTarget(self, action: #selector(click(_ :)), for: .valueChanged)
}
}
func click(_ sender: UIPageControl){
//根据点击的页数,计算scrollView需要显示的偏移量
var frame = scrollView.frame
frame.origin.x = frame.size.width * CGFloat(sender.currentPage)
frame.origin.y = 0
//展现当前页面内容
scrollView.scrollRectToVisible(frame, animated: true)
}
func scrollViewDidEndDecelerating(_ scrollView: UIScrollView) {
let page = Int(scrollView.contentOffset.x / scrollView.frame.size.width)
//设置pagecontrol当前的页数
pagecontrol.currentPage = page
}
}
本文介绍了一个使用Swift实现的简单教程,展示了如何创建一个带有页面控制器的轮播视图来展示不同课程的图片。该轮播视图利用UIScrollView的pagingEnabled属性确保用户只能停留在指定的页面上。
2793

被折叠的 条评论
为什么被折叠?



