###前提・実現したいこと
以下のURLを参考にUIScrollView上でUIImageViewを拡大したいのですが、できません。
http://qiita.com/wmoai/items/52b1901e62d28dae9f91
StoryBoard側で、UIScrollViewのzoom max/min値を指定をしなければ動かないそうなのですが、Attributes InspectorのZoomで「min:1 max:8」としてます。
アドバイスいただければありがたいです。
###該当のソースコード
swift
1class ViewController: UIViewController, UIScrollViewDelegate { 2 @IBOutlet var scrollView: UIScrollView! 3 var imageView: UIImageView! 4 5 override func viewDidLoad() { 6 super.viewDidLoad() 7 scrollView.delegate = self 8 9 imageView = UIImageView(image: UIImage(named: "test.png")) 10 scrollView.addSubview(imageView) 11 } 12 13 override func viewDidLayoutSubviews() { 14 super.viewDidLayoutSubviews() 15 if let size = imageView.image?.size { 16 // imageViewのサイズがscrollView内に収まるように調整 17 let wrate = scrollView.frame.width / size.width 18 let hrate = scrollView.frame.height / size.height 19 let rate = min(wrate, hrate, 1) 20 imageView.frame.size = CGSizeMake(size.width * rate, size.height * rate) 21 22 // contentSizeを画像サイズに設定 23 scrollView.contentSize = imageView.frame.size 24 // 初期表示のためcontentInsetを更新 25 updateScrollInset() 26 } 27 } 28 29 func viewForZoomingInScrollView(scrollView: UIScrollView) -> UIView? { 30 // ズームのために要指定 31 return imageView 32 } 33 34 func scrollViewDidZoom(scrollView: UIScrollView) { 35 // ズームのタイミングでcontentInsetを更新 36 updateScrollInset() 37 } 38 39 private func updateScrollInset() { 40 // imageViewの大きさからcontentInsetを再計算 41 // なお、0を下回らないようにする 42 scrollView.contentInset = UIEdgeInsetsMake( 43 max((scrollView.frame.height - imageView.frame.height)/2, 0), 44 max((scrollView.frame.width - imageView.frame.width)/2, 0), 45 0, 46 0 47 ); 48 } 49}
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/12/17 12:28
2016/12/17 12:30
2016/12/17 12:31