質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Objective-C

Objective-Cはオブジェクト指向型のプログラミング言語のひとつです。C言語をベースにSmalltalkが取り入れられています。

iOS

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

Q&A

1回答

2785閲覧

【swift】UIScrollView上でUIImageViewを拡大できない

mmmm

総合スコア54

Objective-C

Objective-Cはオブジェクト指向型のプログラミング言語のひとつです。C言語をベースにSmalltalkが取り入れられています。

iOS

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

0グッド

0クリップ

投稿2016/12/17 03:44

###前提・実現したいこと
以下の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}

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

こちらでは質問のコードで問題なく拡大/縮小されますが、viewDidLoad()のメソッドは呼ばれているのでしょうか?

あとUIScrollView@IBOutletStoryboardのパーツと結んでありますか?

画面が表示されているのであれば、やはりZoomが設定されていないかもしれないので念のためコードでも書いてみてもらえますか?

swift

1scrollView.minimumZoomScale = 1 2scrollView.maximumZoomScale = 8

投稿2016/12/17 04:04

編集2016/12/17 04:42
_Kentarou

総合スコア8490

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

mmmm

2016/12/17 12:28

アドバイスありがとうございます。viewDidLoad()は呼ばれています。画像が表示されていますので。 scrollView.minimumZoomScale = 1 scrollView.maximumZoomScale = 8 上記をvidwDidLoadで追記したのですがやはり拡大されません。
mmmm

2016/12/17 12:30

swift3.0で実装していることやコード以外の部分で設定がおかしいのでしょうか。 何か他に考えられる原因があればアドバイスいただければありがたいです。
mmmm

2016/12/17 12:31

オートレイアウトの設定はしていないのですが設定しないと拡大できないなどあるのでしょうか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問