(一)UIScrollView是所有复杂UI视图的基础。
(二)基本属性
public var contentOffset: CGPoint // 滚动视图偏移量 public var contentSize: CGSize // 滚动视图的内容大小 public var contentInset: UIEdgeInsets // scrollview的contentview的顶点相对于scrollview的位置 public var directionalLockEnabled: Bool // default NO. if YES, try to lock vertical or horizontal scrolling while dragging public var bounces: Bool // 是否开启回弹效果 public var alwaysBounceVertical: Bool // 是否始终水平回弹 public var alwaysBounceHorizontal: Bool // 是否始终垂直回弹 public var pagingEnabled: Bool // 是否分页(开启后滑动有自动定位功能) public var scrollEnabled: Bool // 是否可以滚动 public var showsHorizontalScrollIndicator: Bool // 是否显示水平滚动条 public var showsVerticalScrollIndicator: Bool // 是否显示垂直滚动条 public var indicatorStyle: UIScrollViewIndicatorStyle // 滚动条的样式(黑色/白色/默认) public var scrollsToTop: Bool // 默认YES,单击上方状态栏(服务商和电池那个地方),会自动回到顶端
(三)代理方法:在用户对滚动视图进行操作的时候,UIScrollViewDelegate协议定义了许多方法可以对各种状态进行监听。
public protocol UIScrollViewDelegate : NSObjectProtocol { @available(iOS 2.0, *) optional public func scrollViewDidScroll(scrollView: UIScrollView) // 滚动的时候 @available(iOS 3.2, *) optional public func scrollViewDidZoom(scrollView: UIScrollView) // 滚动视图已经缩放时候 @available(iOS 2.0, *) optional public func scrollViewWillBeginDragging(scrollView: UIScrollView) // 将要开始拖动视图调用 @available(iOS 5.0, *) optional public func scrollViewWillEndDragging(scrollView: UIScrollView, withVelocity velocity: CGPoint, targetContentOffset: UnsafeMutablePointer<CGPoint>) // 将要结束拖拽视图调用 @available(iOS 2.0, *) optional public func scrollViewDidEndDragging(scrollView: UIScrollView, willDecelerate decelerate: Bool) // 已经结束拖拽视图 @available(iOS 2.0, *) optional public func scrollViewWillBeginDecelerating(scrollView: UIScrollView) // 即将减速的时候 @available(iOS 2.0, *) optional public func scrollViewDidEndDecelerating(scrollView: UIScrollView) // 减速停止的时候 @available(iOS 2.0, *) optional public func scrollViewDidEndScrollingAnimation(scrollView: UIScrollView) // 滚动动画结束时候 @available(iOS 2.0, *) optional public func viewForZoomingInScrollView(scrollView: UIScrollView) -> UIView? // 设置进行缩放的子视图(谁缩放) @available(iOS 3.2, *) optional public func scrollViewWillBeginZooming(scrollView: UIScrollView, withView view: UIView?) // 将要进行缩放时候 @available(iOS 2.0, *) optional public func scrollViewDidEndZooming(scrollView: UIScrollView, withView view: UIView?, atScale scale: CGFloat) // 完成缩放的时候 @available(iOS 2.0, *) optional public func scrollViewShouldScrollToTop(scrollView: UIScrollView) -> Bool // return a yes if you want to scroll to the top. if not defined, assumes YES @available(iOS 2.0, *) optional public func scrollViewDidScrollToTop(scrollView: UIScrollView) // 点击状态栏回到顶部,仅针对可上下滚动的scrollview 有效 }
(四)设置SCrollView的缩放属性
scrollView.maximumZoomScale = 2.0 scrollView.minimumZoomScale = 0.5 scrollView.bouncesZoom = true // 缩放属性是否回弹