ピンチしてズームするありがちな画像表示ビューコントローラを作る。よくある話だと思います。
元来、これを作るのは非常にめんどくさくlocationInViewだのzoomRectForScaleだのというメソッドを作っては投げていました。
でも、それも今日まで!
AutolayoutにUIScrollViewとUIImageViewを乗せて数行コードを書けば、ピンチで画像ズーム出来るビューコントローラが作れます!!3分くらいで!
#Autolayout
1.UIScrollViewを乗せて、上下左右にマージン0を指定して画面いっぱいにレイアウト
2.UIScrollViewの中にUIImageViewを乗せて上下左右にマージン0、高さと幅をUIScrollViewと同じ(Equal Width/Equal Height)にします。
3.IBOutletでひも付け
#コード
1.UIScrollViewDelegateを設定
2.ズームの設定を記述
imageScrollView.minimumZoomScale = 1.0
imageScrollView.maximumZoomScale = 4.0
imageScrollView.delegate = self
3.zoom用のビューを指定
func viewForZoomingInScrollView(scrollView: UIScrollView) -> UIView? {
return imageView
}
#ハイ完成!!!!!!!!!
#おまけ
contentModeをAspectFitにすると見栄えがいい
ピンチアウトする時の中心が若干ずれて気持ち悪い。
viewForZoomingInScrollViewのおかげ。なんだこいついつからいたんだ…。