UIScrollView是Xcode的滚动视图,主要用于在小的屏幕上实现全局观看,能够进行拖动审阅其他不能看到的部分。
UIScrollView常见的几个重要控件
UITableView
UICollectionView
UITextView
UIScrollView常见的重要属性
属性名 作用
contentSize 设置UIScrollView的滚动范围
contentOffset UIScrollView当前滚动的位置
contentInset 增加滚动视图四周的增加滚动范围
bounces 是否有弹簧效果,默认是开启的
scrollEnabled 是否能滚动
showsHorizontalScrollIndicator 是否显示水平方向的滚动条
showsVerticalScrollIndicator 是否显示垂直方向的滚动条
indicatorStyle 设定滚动条的样式
dragging 是否正在被拖拽
tracking 按住手指还没有开始拖动的时候值是YES,否则NO
decelerating 是否正在减速
zooming 是否正在缩放
pagingEnabled 滚动视图是否被分割成多个独立的页面
代码如下:
1.定义属性
let scrollView = UIScrollView()
2.设置参数
//1.设置frame
self.scrollView.frame = self.view.bounds
//2.添加到界面上
self.view.addSubview(self.scrollView)
//3.添加Imageview
for item in 1...6 {
let imageView = UIImageView.init(frame: CGRectMake(CGFloat(item-1)*self.scrollView.bounds.width, 0, self.scrollView.bounds.width, self.scrollView.bounds.height*3))
imageView.image = UIImage.init(named: "46_\(item).jpg")
self.scrollView.addSubview(imageView)
}
//4.设置内容大小
self.scrollView.contentSize = CGSizeMake(6*self.scrollView.bounds.width, self.scrollView.bounds.height)
//5.设置分页
self.scrollView.pagingEnabled = true
//6.设置代理
self.scrollView.delegate = self
7.添加按钮
let btn = UIButton.init(frame:CGRectMake(100, 100, 100, 50))
btn.setTitle("下一页", forState: .Normal)
btn.addTarget(self, action: "btnAction", forControlEvents: .TouchDown)
self.view.addSubview(btn)
3.设置按钮点击
extension ViewController {
func btnAction(){
let offset = CGPointMake(self.scrollView.contentOffset.x + self.scrollView.bounds.x, 0)
self.scrollView.setContentOffset(offset, animated: true)
}
}
4.加入UIScrollViewDelegate滚动方法,实现视图滚动、拖动、拖拽的时候调用
//MARK: UIScrollView Delegate
//==========滚动相关的协议的方法==============
extension ViewController:UIScrollViewDelegate {
//1.在scrollView滚动的时候实时调用
func scrollViewDidScroll(scrollView: UIScrollView) {
print("正在滚动")
print(scrollView.contentOffset)
}
//2.在scrollView将要开始拖动的时候调用
func scrollViewWillBeginDecelerating(scrollView: UIScrollView) {
print("将要开始拖拽")
}
//3.将要停止拖拽的是调用(手松开,不代表停止滚动)
//参数2:手松开时候在x方向和在y方向的速度
//参数3:预判的滚动停止时候的偏移量
func scrollViewWillEndDragging(scrollView: UIScrollView, withVelocity velocity: CGPoint, targetContentOffset: UnsafeMutablePointer<CGPoint>) {
print("将要停止拖拽")
}
//4.停止减速的时候会调用(实质就是停止滚动的时候会调用)
func scrollViewDidEndDecelerating(scrollView: UIScrollView) {
print("停止减速的时候会调用")
}
//5.手将要停止拖拽的时候调用
func scrollViewWillBeginDragging(scrollView: UIScrollView) {
print("将要开始减速")
}
//6.已经停止滚动动画的时候会调用
//只有在通过setContentOffset的方法使用动画效果让scrollView滚动,在停止滚动的时候才会调用这个方法
func scrollViewDidEndScrollingAnimation(scrollView: UIScrollView) {
print("停止滚动动画")
}
//7.只有通过点击状态栏自动滚动到顶部的时候才会采用。
func scrollViewDidScrollToTop(scrollView: UIScrollView) {
print("已经滚动到顶部")
}
6.缩放相关.
//=========缩放相关===========
//UIScrollView已经实现了缩放功能
//想要让UIScrollView上的内容进行缩放必须满足以下条件:
//a.设置缩放的最大倍数和最小倍数(默认都是1)
//b.通过协议方法告诉UIScrollView缩放对象
//1.正在缩放的时候会实时调用
func scrollViewDidZoom(scrollView: UIScrollView) {
print("正在缩放")
}
//2.告诉UIScrollView在缩放的时候,对哪个视图进行缩放(设置缩放对象)
func viewForZoomingInScrollView(scrollView: UIScrollView) -> UIView? {
return scrollView.subviews[0]
}
}