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

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

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

TableView(UITableView)とは、リスト形式で表示するコントロールで、ほとんどのアプリに使用されています。画面を「行」に分けて管理し、一般的には各行をタップした際に詳細画面に移動します。

Swift

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

Q&A

解決済

2回答

5852閲覧

TableVIewで画像のサイズを変えて表示する

madao

総合スコア24

TableView

TableView(UITableView)とは、リスト形式で表示するコントロールで、ほとんどのアプリに使用されています。画面を「行」に分けて管理し、一般的には各行をタップした際に詳細画面に移動します。

Swift

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

0グッド

0クリップ

投稿2017/03/20 01:01

TableViewのCellに画面の横幅いっぱいでCellのした50くらいを残して表示させたいです。
何をやっても、Cellの高さいっぱいに表示されてどうにもなりません。教えて下さい。

swift

1class ViewController: UIViewController ,UITableViewDelegate,UITableViewDataSource{ 2 3 4 let menus : [String] = ["ご飯1","ご飯2","ご飯3","ご飯4","ご飯5","タご飯6","ご飯7","ご飯8","ご飯9"] 5 6 let keys : [String] = ["あ","い","う","え","お","か","き","く","け","こ","さ","し"] 7 8 let menuImages = ["pizza.JPG","guril.JPG","asupara.JPG","","","","","","","",""] 9 10 var testImages:[UIImage] = [] 11 12 13 // ステータスバーの高さ 14 let statusBarHeight = UIApplication.shared.statusBarFrame.height 15 16 override func viewDidLoad() { 17 super.viewDidLoad() 18 19 // UITableView を作成 20 let tableView = UITableView() 21 22 23 // サイズと位置調整 24 tableView.frame = CGRect( 25 x: 0, 26 y: statusBarHeight , 27 width: self.view.frame.width, 28 height: self.view.frame.height - statusBarHeight 29 ) 30 31 // Delegate設定 32 tableView.delegate = self 33 34 35 // DataSource設定 36 tableView.dataSource = self 37 38 // 画面に UITableView を追加 39 self.view.addSubview(tableView) 40 41 //for menuImage in menuImages { 42 // testImages.append(UIImage(named: menuImage)!) 43 //} 44 45 } 46 47 override func didReceiveMemoryWarning() { 48 super.didReceiveMemoryWarning() 49 } 50 51 // MARK: - UITableViewDataSource 52 53 func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { 54 // セルを作る 55 56 let cell = UITableViewCell(style: .subtitle, reuseIdentifier: "cell") 57 cell.textLabel?.text = menus[indexPath.row] 58 cell.detailTextLabel?.text = keys[indexPath.row] 59 cell.detailTextLabel?.textColor = UIColor.gray 60 cell.imageView?.image = UIImage(named: menuImages[indexPath.row]) 61 _ = cell.imageView?.image?.resize(size: CGSize(width: 100, height: 200)) 62 63 64 return cell 65 } 66 67 func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { 68 // セルの数を設定 69 return menus.count 70 } 71 72 73 74} 75

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

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

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

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

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

fuzzball

2017/03/21 02:20

セルの高さは設定していないのでしょうか?デフォルトのセルの高さは44なので、何も設定していないのであれば、そもそも下に50あけることは出来ません。
madao

2017/03/21 04:53

すいません。コピペし忘れです。。高さ 250にしてます
guest

回答2

0

ベストアンサー

UITableViewCell標準のUIImageView(imageViewプロパティ)はサイズ変更出来ませんので、自分でUIImageViewを作ってcell.contentViewにaddSubviewして下さい。

swift

1let iv = UIImageView(frame: CGRect(x: 15, y: 0, width: 100, height: 200)) 2iv.image = UIImage(named: menuImages[indexPath.row]) 3cell.contentView.addSubview(iv)

こんな感じで。(動作未確認)

投稿2017/03/21 06:15

fuzzball

総合スコア16731

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

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

madao

2017/03/22 07:22

承知いたしました。 ありがとうございます!
guest

0

swift

1_ = cell.imageView?.image?.resize(size: CGSize(width: 100, height: 200))

ではなくて、

swift

1cell.imageView.frame.size = CGsize(width: 100, height: 200)

はダメですか?
あとカスタムセルクラスのコードを載せて欲しいですね。

投稿2017/03/20 18:24

kabutomusi1

総合スコア30

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

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

madao

2017/03/20 20:05

はい、その辺のサイズ変更は全て試みましたが、変わりませんでした。 カスタムセルクラスが必要なんですか? 自分初心者なんでどういう風に記述すればいいのかわからないのですがご教授いただけませんか?
kabutomusi1

2017/03/21 15:08

fuzzballさんが書いてあるやり方でできると思います! 自分がimageViewなどが、標準のUITableViewCellのクラスにあると知らず、自作のCellのクラスが用意されているものだと勘違いしました。笑 すいません。
madao

2017/03/22 07:20

色々ありがとうございました!!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問