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

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

新規登録して質問してみよう
ただいま回答率
85.48%
Swift

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

Q&A

解決済

2回答

1123閲覧

StoryBoardを使わずに画像を拡大したい

hiechin1107

総合スコア15

Swift

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

0グッド

0クリップ

投稿2018/12/07 11:00

編集2018/12/08 18:23

前提・実現したいこと

StoryBoardを使わずに画像を拡大・縮小したいです。
UIImageViewで画像を表示することはできたのですが、
その画像をピンチイン・アウトしたいのです。
但し、拡大・縮小は、
UIImageViewで作成したframe内でやりたいのですが
なかなかうまくいかずにハマっています。

以下を実現したいです。
作成したframe内で拡大・縮小をしたい
拡大した時、frameの外にはみ出た所も移動させて表示できるようにしたい

検索して、UIScrollViewを使えば良いのかと思って
実装してみたのですが、これもうまくいかず・・・

C、C++,C#経験がありますが、
swiftは、始めて二ヶ月ほどです。

ご教授のほど、よろしくお願いします。

該当のソースコード

class CommentaryView: UIViewController , UITextViewDelegate{ // 解説図 var m_CommentaryImage:UIImageView = UIImageView() var scrollView: UIScrollView = UIScrollView() override func viewDidLoad() { super.viewDidLoad() scrollView.delegate = self scrollView.minimumZoomScale = 0.0 scrollView.maximumZoomScale = 2.0 ------省略------- CreateView() } /* 画面を作る 戻り値:なし */ func CreateView() // 背景 ------省略------- // 解説図があるかどうか。true:ある、false:ない var bCommImage = false if(!m_dicCommentary[m_strIndex]!.strCommImage.isEmpty){ bCommImage = true } // 目次IndexLabelを作る ------省略------- // 難易度ImageViewを作る ------省略------- // 解説図ImageViewを作る if(bCommImage){ ------問題のソース ここから------- m_CommentaryImage = UIImageView(frame: CGRect(x: 10, y: displayMaxY+10, width: self.view.frame.width-20, height: 200)) m_CommentaryImage.image = UIImage(named: m_dicCommentary[m_strIndex]!.strCommImage) m_CommentaryImage.layer.zPosition = 0 m_CommentaryImage.backgroundColor = UIColor.white //self.view.addSubview(m_CommentaryImage) m_CommentaryImage.contentMode = .scaleAspectFit scrollView.addSubview(m_CommentaryImage) self.view.addSubview(scrollView) // 目次IndexLabel+難易度ImageView+解説図ImageViewの最大Y座標を更新 displayMaxY = m_CommentaryImage.frame.maxY displayHeight = displayHeight - m_CommentaryImage.frame.height - 10        ------問題のソース ここまで------- // 目次IndexLabel+難易度ImageView+解説図ImageViewの最大Y座標を更新 displayMaxY = m_CommentaryImage.frame.maxY displayHeight = displayHeight - m_CommentaryImage.frame.height - 10 } ------省略------- } override func viewDidLayoutSubviews() { super.viewDidLayoutSubviews()      ------省略------- } func viewForZooming(in scrollView: UIScrollView) -> UIView? {      ------省略------- } func scrollViewDidZoom(_ scrollView: UIScrollView) {      ------省略------- } ```ここに言語名を入力 ### 試したこと 上記の内容で実行した結果、下記のようになりました。 ![イメージ説明](37179d701119c7472cb2c18fbe83a209.png) 目的の(拡大縮小したい)画像が表示されるはずなのですが表示してくれません。 scrollViewのframeをImageViewのCGRectの設定値にしてみましたが、 表示されませんでした。 ### 補足情報(FW/ツールのバージョンなど) XCode Version 10.0 MacOS 10.13.6

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

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

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

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

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

guest

回答2

0

自己解決

teratailの質問に似た内容のものがありました。
https://teratail.com/questions/159510
https://teratail.com/questions/160261

投稿2018/12/23 19:39

hiechin1107

総合スコア15

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

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

0

「ダメでした」だけでは、何がダメなのか分からないのですが、実現したいことについて以下のサイトで紹介しているやりかたで満たしているようです。
GitHubにサンプルソースもあるようですので参考にしてみてはいかがでしょうか。

【追記】StoryBoardを使わずにとのことですが、上記のサイトはStoryBoardを使っています。このサイトで説明している内容のStoryBoardを使っている部分をコードに置き換える方法が分からないのであれば、その分からない箇所を質問内容に追記ください。

投稿2018/12/08 14:00

編集2018/12/08 14:06
nakasho_dev

総合スコア2655

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

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

hiechin1107

2018/12/08 18:28

ご回答ありがとうございます。 説明不足でしたので、画像を追加してみました。 また、サンプルソースを参考に実装してみたのですが、 追加した画像の結果となりました。 画像が表示されないことには ピンチイン・アウトのコーディングもできないので ハマっています・・・・
nakasho_dev

2018/12/15 14:59

ScrollViewのAutoLayoutの設定はどうなっているのでしょうか。
hiechin1107

2018/12/23 19:36

返信遅れて大変申し訳ありません。 進捗があったので報告します。 teratailの質問に似た内容のものがありました。 https://teratail.com/questions/159510 https://teratail.com/questions/160261 上記内容を参考に、frame固定とピンチイン・アウトはできるようになりました。 現状は、拡大した時にはみ出した画像の部分をドラッグ移動できない状態です。 ただ、この実装は見送ることにしました。 大変ご迷惑をかけました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問