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

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

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

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

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

iPhone

iPhoneとは、アップル社が開発・販売しているスマートフォンです。 同社のデジタルオーディオプレーヤーiPodの機能、電話機能、インターネットやメールなどのWeb通信機能の3つをドッキングした機器です。

Q&A

解決済

1回答

899閲覧

サイズを調整した画像を表示させる方法を教えてください。

magiee

総合スコア28

Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

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

iPhone

iPhoneとは、アップル社が開発・販売しているスマートフォンです。 同社のデジタルオーディオプレーヤーiPodの機能、電話機能、インターネットやメールなどのWeb通信機能の3つをドッキングした機器です。

0グッド

1クリップ

投稿2020/04/07 08:59

実現したいこと

現状、タップして表示させた画像が大きすぎる為、
予め指定したサイズに調整し、その画像を表示させたいです。

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

以下のリンクを参考にしようと思ったのですが、
記載するコードのイメージが付かず、できませんでした。
https://i-app-tec.com/ios/uiimageview_resize.html
https://qiita.com/ydzum1123/items/18f6c2da2ea6048280ee

該当のソースコード

import UIKit class ViewController: UIViewController { var coinCount = 0 var coin : UIImageView = UIImageView() //ここに画像を調整する為の関数を追加??// @IBAction func addImage(_ sender: UITapGestureRecognizer) { if coinCount == 0 { coin = UIImageView(image: UIImage(named: "myImage")) coin.center = sender.location(in: self.view) self.view.addSubview(coin) } else if coinCount == 1 { coin.removeFromSuperview() } coinCount = coinCount + 1 coinCount = coinCount % 2 } override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view. } }

記載する場所の予想

var coin : UIImageView = UIImageView()

の所に、.frameもしくは、.resizableを使用するのかなと思うのですが、
うまくいきません。

使用している言語

swift
Xvode 11.4

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

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

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

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

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

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

guest

回答1

0

ベストアンサー

サイズ(widht, height)を指定して生成してください。後ほど位置(x, y)をcenterで指定するので、
生成時の位置は(0, 0)で。

必要ならばcontentModeの指定と、clipToBoundsの指定を足してあげてください。

contentModeの設定

swift

1var coin : UIImageView = UIImageView(x: 0, y: 0, width: 100, height: 100) 2coin.contentMode = .aspectFit 3coin.clipToBounds = ture 4

エラーの件ここに、ぱぱっと手打ちしたので間違えました、訂正します。

修正

swift

1var coin = UIImageView(frame: CGRect(x: 0, y: 0, width: 100, height: 100)) 2 3// ↓はとりあえずaddSubViewの直前で設定してあげてください。 4coin.contentMode = .aspectFill 5coin.clipToBounds = ture 6

投稿2020/04/07 10:27

編集2020/04/07 11:35
退会済みユーザー

退会済みユーザー

総合スコア0

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

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

magiee

2020/04/07 11:21

回答して頂きありがとうございます。 回答してくださったコードを入力すると、エラーが出てしまうのですがどこが悪いのでしょうか?? var coin : UIImageView = UIImageView(x: 0, y: 0, width: 100, height: 100)   エラー内容:Argument passed to call that takes no arguments         Replace '(x: 0, y: 0, width: 100, height: 100)' with '' coin.contentMode = .aspectFit   エラー内容:Consecutive declarations on a line must be separated by ';'         Expected '(' in argument list of function declaration         Expected '{' in body of function declaration         Expected 'func' keyword in instance method declaration         Expected declaration         Invalid redeclaration of 'coin()' coin.clipToBounds = ture 調べてみたのですが、UIImageView(frame: CGRect()をつけると、エラーは消えました。 しかし、100にしても10にしても、画像のサイズは変わりませんでした。。。。 var coin : UIImageView = UIImageView(frame: CGRect(x: 0, y: 0, width: 10, height: 10))  エラーは消えるが、画像のサイズが変更されません。 ご教授お願いいたします。
退会済みユーザー

退会済みユーザー

2020/04/07 11:38 編集

ところで、どれくらいの画像をどれくらいの大きさで表示したいのでしょうか? 表示先は100×100でいいのでしょうか? あー10×10ね
magiee

2020/04/07 11:54

回答ありがとうございます。 エラーは消えました。ありがとうございます。 しかし、画像の大きさがやはり変わらないようです。 何が、いけないのでしょうか?? import UIKit class ViewController: UIViewController { var coinCount = 0 var coin = UIImageView(frame: CGRect(x: 0, y: 0, width: 50, height: 50)) @IBAction func addImage(_ sender: UITapGestureRecognizer) { if coinCount == 0 { coin = UIImageView(image: UIImage(named: "myImage")) coin.center = sender.location(in: self.view) coin.contentMode = .scaleToFill coin.clipsToBounds = true self.view.addSubview(coin) } else if coinCount == 1 { coin.removeFromSuperview() } coinCount = coinCount + 1 coinCount = coinCount % 2 } override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view. } }
退会済みユーザー

退会済みユーザー

2020/04/07 12:29 編集

似たようなもの置いとくので、試して、ご自分の作られたものと比較してみてください。 ↓ https://github.com/tyobigoro/UIImage 640×1136pixelsの画像がタップされた場所に40×40で表示されます
magiee

2020/04/07 22:30

ありがとうございます! 比較して作成することができました。ご教授いただき、ありがとうございました。
退会済みユーザー

退会済みユーザー

2020/04/08 00:19 編集

原因はサイズを指定したUIImageViewのインスタンスにサイズ指定していないUIImageViewのインスタンスを代入してるからですね。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問