當咱們使用Storyboard開發項目時,若是要往控制器上拖入一個ScrollView而且添加約束設置滾動區域,是有特殊的規定的:swift
注意:在實際開發中,咱們可能會遇到不止上下滾動(設置水平居中和高度)的時候,若是要左右滾動就設置垂直居中和寬度就好,若是要上下左右均可以滾動的話,就設置寬高、不須要設置水平或者垂直居中spa
// 滾動區域 scrollView.contentSize // 當前的滾動位置,偏移量 scrollView.contentOffset // content view 的定點位於 scroll view 的位置 scrollView.contentInset
// 定向鎖定 true的話就算是雙向滾動,觸發滾動時也只能單向滾動 scrollview.directionalLockEnabled = true // 滾動條樣式 scrollview.indicatorStyle = UIScrollViewIndicatorStyle.Black // 減速速度 scrollview.decelerationRate = 0.5
// 視圖滾動中就會調用這個方法,屢次調用。 func scrollViewDidScroll(scrollView: UIScrollView) { } // 是否容許點擊狀態欄滾動到最頂部。 func scrollViewShouldScrollToTop(scrollView: UIScrollView) -> Bool { return true } // 在容許點擊狀態欄滾動到最頂部的狀況下,點擊狀態欄滾動到最頂部時調用 func scrollViewDidScrollToTop(scrollView: UIScrollView) { print("scrollViewDidScrollToTop") } // 滾動即將開始拖動,當手指稍微移動一點點時調用方法 func scrollViewWillBeginDragging(scrollView: UIScrollView) { print("scrollViewWillBeginDragging") } // 滾動視圖已經結束減速,即爲滾動視圖已經中止了滾動 func scrollViewDidEndDecelerating(scrollView: UIScrollView) { print("scrollViewDidEndDecelerating") } // 滾動視圖即將開始減速,當手指離開後讓scrollview天然減速,就會調用這個方法 func scrollViewWillBeginDecelerating(scrollView: UIScrollView) { print("scrollViewWillBeginDecelerating") } // 這個方法當調用 scrollview.setContentOffset(animation:) 這個方法時纔會調用這個方法 func scrollViewDidEndScrollingAnimation(scrollView: UIScrollView) { print("scrollViewDidEndScrollingAnimation") } // 滾動視圖即將中止拖拽,即手指離開屏幕那一刻 func scrollViewWillEndDragging(scrollView: UIScrollView, withVelocity velocity: CGPoint, targetContentOffset: UnsafeMutablePointer<CGPoint>) { print("scrollViewWillEndDragging") } // 滾動書體已經中止拖拽,會比scrollViewWillEndDragging晚調用 func scrollViewDidEndDragging(scrollView: UIScrollView, willDecelerate decelerate: Bool) { print("scrollViewDidEndDragging") } // 滾動視圖已經縮放,屢次調用 func scrollViewDidZoom(scrollView: UIScrollView) { print("scrollViewDidZoom") } // 滾動視圖即將開始縮放 func scrollViewWillBeginZooming(scrollView: UIScrollView, withView view: UIView?) { } // 滾動視圖已經縮放完畢 func scrollViewDidEndZooming(scrollView: UIScrollView, withView view: UIView?, atScale scale: CGFloat) { } // 返回要縮放的視圖 func viewForZoomingInScrollView(scrollView: UIScrollView) -> UIView? { return zoomingView }