> 原文:http://www.swiftyper.com/Swift/scrollviewpart3.html
# ScrollView 學習筆記 - Part3
`ScrollView`的第二個基本功能就是“縮放”。
要實現縮放也很簡單,只需要兩個步驟:
## 實現委托
要實現縮放,需要實現
~~~
viewForZoomingInScrollView:
~~~
這個委托方法,在這個方法中返回需要進行縮放的`ScrollView`的子視圖。
## 設置縮放級別
設置縮放的最大和最小級別:
~~~
scrollView.minimumZoomScale = 0.1
scrollView.maximumZoomScale = 3.0
scrollView.zoomScale = 1.0
~~~
只要以上兩個步驟就可以實現縮放了,不過,如果只是單純設置了最小縮放級別,可能會由于縮放得太小,導致屏幕有很多的空白十分難看。所以,我們最好根據`ScrollView`的大小來計算出最小的縮放級別。
~~~
private func setZoomParamatersForSize(scrollViewSize: CGSize) {
let imageSize = imageView.bounds.size
let widthScale = scrollViewSize.width / imageSize.width
let heightScale = scrollViewSize.height / imageSize.height
let minScale = min(widthScale, heightScale)
scrollView.minimumZoomScale = minScale
scrollView.maximumZoomScale = 3.0
scrollView.zoomScale = minScale
}
~~~
同時,為了保證在屏幕方向變化的時候,縮放級別也能改變,還得實現這個方法:
~~~
override func viewWillLayoutSubviews() {
setZoomParamatersForSize(scrollView.bounds.size)
}
~~~
## 其它委托方法
除了`viewForZoomingInScrollView:`,在`ScrollView`的委托方法中,還有兩個與縮放有關:
~~~
scrollViewDidZoom:
scrollViewDidEndZooming:?
~~~
## 總結
在`ScrollView`當中,實現縮放也是相當容易的,主要還是設置縮放級別來適應`ScrollView`這點比較重要,其它都是很直觀的。