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

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

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

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

Xcode

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

Swift

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

Q&A

解決済

2回答

1271閲覧

UIImageViewをインスタンス化してサイズを変更したい

sunglass

総合スコア303

iOS

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

Xcode

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

Swift

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

0グッド

0クリップ

投稿2020/04/22 05:11

編集2020/04/22 08:37

UIImageViewを使って画像のサイズを変更したいのですが上手くいきません。

UIImageViewのサイズ変更を行う場合は・・・
STEP1:インスタンス化
STEP2:サイズを指定
の流れだと理解しているのですがここが違うのでしょうか・・・?
詳しい方よろしくおねがいします。

import UIKit class ViewController: UIViewController ,UITableViewDataSource, UITableViewDelegate{ @IBOutlet weak var table: UITableView! // 画像配列 let imgArray: NSArray = [ "img0","img1", "img2","img3", "img4","img5", "img6","img7"] // テキスト配列 let label2Array: NSArray = [ "8/23/16:04","8/23/16:15", "8/23/16:47","8/23/17:10", "8/23/1715:","8/23/17:21", "8/23/17:33","8/23/17:41"] override func viewDidLoad() { super.viewDidLoad() } // セルの数 func tableView(_ table: UITableView, numberOfRowsInSection section: Int) -> Int { return imgArray.count } //セルの中身 func tableView(_ table: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { // インスタンス化 let cell = table.dequeueReusableCell(withIdentifier: "tableCell", for: indexPath) let img = UIImage(named: imgArray[indexPath.row] as! String) // インスタンスを取得 let imageView = cell.viewWithTag(1) as! UIImageView imageView.image = img // 120 * 120 imageView.frame = CGRect(x:0, y:0, width:120, height: 120) // ←ここが反映されない // ナンバリング let label1 = cell.viewWithTag(2) as! UILabel label1.text = "No." + String(indexPath.row + 1) let label2 = cell.viewWithTag(3) as! UILabel label2.text = String(describing: label2Array[indexPath.row]) return cell } // セルの高さ:120 func tableView(_ table: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat { return 120.0 } }

イメージ説明

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

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

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

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

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

退会済みユーザー

退会済みユーザー

2020/04/22 08:43

UIImageViewをセルによって大きさを変えたいのでしょうか? UIImageViewの大きさは変えずに、画像をUIImgeViewにフィットさせたいだけでしょうか? 添付された画像をみるとうまくいっている用に見えますが?どのように変更したいのでしょうか?
sunglass

2020/04/22 10:45

まずは画像を『コード』で120×120にしたいです。 (一応Storyboardでは出来たのですがコード側で設定出来なかったです。。)
退会済みユーザー

退会済みユーザー

2020/04/23 11:17

写真立てで例えますね。 額縁(UIImageView)のサイズを調整したいのか? 額縁の大きさはそのままで、中にある写真(UIImage)の大きさ(額縁との間の余白)を調整したいのか? まずどっちがやりたいのでしょうか?
sunglass

2020/04/23 12:02

後者の『中にある写真(UIImage)の大きさ(額縁との間の余白)を調整したい』です。よろしくお願いします。
退会済みユーザー

退会済みユーザー

2020/04/23 13:00

あれ?でしたら回答に書いてありますが。参考ページに書いてあるどれを試して、どうなって、何ができないんでしょうか? それとも参考ページに書いてあることでは実現できなそうなことをしたいんでしょうか?
guest

回答2

0

ベストアンサー

カスタムセルで、UIImageViewの大きさを決めてるんだろうから、後はそれのcontentModeを設定して、画像をimageViewにフィットさせるのでは?

https://qiita.com/Saayaman/items/a23519ff5a8ad287cf20

投稿2020/04/22 05:23

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

0

ビューのレイアウトに関してはAutoLayoutを使っていると、そちらで再レイアウトが掛かるので、プログラムでframeを変更してもAutoLayout時に上書きされてしまう可能性があります。

※AutoLayout私は詳しくないので詳しくは他の方におまかせ。

// UIImageViewをインスタンス化
let imageView = cell.viewWithTag(1) as! UIImageView

これは「インスタンス化」しているのではなく、インスタンスを取得(または検索)しています。

投稿2020/04/22 08:10

takabosoft

総合スコア8356

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

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

sunglass

2020/04/22 08:42

回答ありがとうございます! >AutoLayout時に上書きされてしまう可能性があります。 そうなんですね・・・ セルの高さと画像の高さが同じ場合はstoryboardのautolayoutで四隅を0にした方が良いのでしょうか・・・? (コメントアウト修正しました・・・ご指摘ありがとうございます。)
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問