44
39

More than 5 years have passed since last update.

UIScrollViewでピンチ量を計算してズームするありがちな画像表示ビューを作る時代は終わった!!

Last updated at Posted at 2015-12-01

ピンチしてズームするありがちな画像表示ビューコントローラを作る。よくある話だと思います。
元来、これを作るのは非常にめんどくさく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のおかげ。なんだこいついつからいたんだ…。

44
39
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
44
39