UIScrollView的使用
import UIKit
class ViewController: UIViewController {
var pageControl: UIPageControl?
override func viewDidLoad() {
super.viewDidLoad()
self.setupScrollView()
}
func setupScrollView() {
let scrollView = UIScrollView(frame: CGRect(x: 0, y: 100, width: UIScreen.main.bounds.width, height: 300))
scrollView.backgroundColor = UIColor.red
// 設置滾動條
scrollView.showsVerticalScrollIndicator = false
scrollView.showsHorizontalScrollIndicator = false
// 設置分頁滾動
scrollView.isPagingEnabled = true
// 設置是否可以拉出空白區(qū)域
scrollView.bounces = false
// 垂直
scrollView.alwaysBounceVertical = false
// 水平
scrollView.alwaysBounceHorizontal = false
// 是否滾動
scrollView.isScrollEnabled = true
// 在scrollView的內容周圍添加一個附件區(qū)域
// scrollView.contentInset = UIEdgeInsetsMake(10, 10, 10, 10)
// 調整指示器(滾動條)的位置
// scrollView.scrollIndicatorInsets = UIEdgeInsetsMake(30, 30, 30, 30)
// 滾動條的樣式
scrollView.indicatorStyle = .black
// 最小的縮放倍數(shù)佑菩,默認值為1.0
scrollView.minimumZoomScale = 0.2
// 最大的縮放倍數(shù)歇万,默認值為1.0
scrollView.maximumZoomScale = 100
// 添加圖片
let imagesArray = ["0.jpg", "1.jpg", "2.pg"]
for i in 0..<imagesArray.count {
// 創(chuàng)建imageview
let imageView = UIImageView(frame: CGRect(x: CGFloat(i)*scrollView.frame.width, y: 0, width: scrollView.frame.width, height: scrollView.frame.height))
let imageName = imagesArray[i]
imageView.image = UIImage(named: imageName)
imageView.isUserInteractionEnabled = true
scrollView.addSubview(imageView)
}
// 設置內容區(qū)域
scrollView.contentSize = CGSize(width: scrollView.frame.width*CGFloat(imagesArray.count), height: scrollView.frame.height)
scrollView.delegate = self
scrollView.isDirectionalLockEnabled = false
// 設置偏移量
// scrollView.setContentOffset(CGPoint(x: 100, y: 10), animated: true)
// 創(chuàng)建UIPageControl
let pageControl = UIPageControl(frame: CGRect(x: 100, y: UIScreen.main.bounds.height-50, width: 200, height: 30))
// pageControl.backgroundColor = UIColor.red
// 總的圖片頁數(shù)
pageControl.numberOfPages = 3
// 當前頁
pageControl.currentPage = 0
pageControl.currentPageIndicatorTintColor = UIColor.orange
// pageControl響應函數(shù)
pageControl.addTarget(self, action: #selector(pageControlClick(_:)), for: .valueChanged)
self.view.addSubview(pageControl)
self.pageControl = pageControl
self.view.addSubview(scrollView)
}
func pageControlClick(_ pageControl: UIPageControl) {
}
}
// MARK: UIScrollViewDelegate
extension ViewController: UIScrollViewDelegate {
func scrollViewWillBeginDragging(_ scrollView: UIScrollView) {
print("將要開始拖動")
}
func scrollViewDidScroll(_ scrollView: UIScrollView) {
print("已經滑動")
if scrollView.contentOffset.x < scrollView.frame.width {
self.pageControl?.currentPage = 0
}
else if (scrollView.contentOffset.x < 2*scrollView.frame.width) && (scrollView.contentOffset.x >= scrollView.frame.width) {
self.pageControl?.currentPage = 1
}
else {
self.pageControl?.currentPage = 2
}
}
func scrollViewDidEndDragging(_ scrollView: UIScrollView, willDecelerate decelerate: Bool) {
print("停止拖動")
}
func scrollViewShouldScrollToTop(_ scrollView: UIScrollView) -> Bool {
print("將要滾動到頂部")
return true
}
func scrollViewDidScrollToTop(_ scrollView: UIScrollView) {
print("已經滾動到頂部")
}
func scrollViewDidZoom(_ scrollView: UIScrollView) {
print("正在縮放")
}
func scrollViewDidEndZooming(_ scrollView: UIScrollView, with view: UIView?, atScale scale: CGFloat) {
print("以及縮放完畢")
}
}