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

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

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

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

Swift

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

解決済

【Swift】collectionview cellの高さを可変にしたいです

NobumitsuHata
NobumitsuHata

総合スコア139

Xcode

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

Swift

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

1回答

0リアクション

0クリップ

6562閲覧

投稿2016/09/12 05:37

現状、正方形になっているセルのサイズは正方形になっていますが、幅はそのまま画面サイズの半分のままで高さを中身の画像のサイズにしたいです。一番ベストな方法教えて頂けると助かります。

Storyboard

SwifT

import UIKit class ChatViewController: UIViewController ,UICollectionViewDataSource, UICollectionViewDelegate, UICollectionViewDelegateFlowLayout { // 画像の名前を配列とする let photos = ["jump1", "jump2", "jump3", "jump4", "jump5", "jump6", "jump7", "jump8", "jump9", "jump10"] // インスタンス化された直後に発動 override func viewDidLoad() { super.viewDidLoad() } // collectionViewのセルを返す func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell{ // dequeueReusableCellWithReuseIdentifier の働きは // 再利用できるセルがあればそれを使う // 再利用できるセルがなければ生成する // Cell はストーリーボードで設定したセルのID let testCell:UICollectionViewCell = collectionView.dequeueReusableCellWithReuseIdentifier("Cell", forIndexPath: indexPath) // Tag番号を使ってImageViewのインスタンス生成 let imageView = testCell.contentView.viewWithTag(1) as! UIImageView // 画像配列の番号で指定された要素の名前の画像をUIImageとする let cellImage = UIImage(named: photos[indexPath.row]) // UIImageをUIImageViewのimageとして設定 imageView.image = cellImage return testCell } // Screenサイズに応じたセルサイズを返す // UICollectionViewDelegateFlowLayoutの設定が必要 func collectionView(collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAtIndexPath indexPath: NSIndexPath) -> CGSize { let cellSize:CGFloat = self.view.frame.size.width/2 // 正方形で返すためにwidth,heightを同じにする return CGSizeMake(cellSize, cellSize) } //section 数の設定、今回は1つにセット func numberOfSectionsInCollectionView(collectionView: UICollectionView) -> Int { return 1 } // collectionViewの要素の数を返す func collectionView(collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int { return 10; } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() } //横の間隔 これで横並びを実装する func collectionView(collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumInteritemSpacingForSectionAtIndex section: Int) -> CGFloat { return 0 } // Cell が選択された場合 func collectionView(collectionView: UICollectionView, didSelectItemAtIndexPath indexPath: NSIndexPath) { // [indexPath.row] から画像名を探し、UImage を設定 // selectedImage = UIImage(named: photos[indexPath.row]) // if selectedImage != nil { // SubViewController へ遷移するために Segue を呼び出す performSegueWithIdentifier("toChatListViewController",sender: nil) // } } // Segue 準備 画面遷移時に値を遷移先に渡すならここに書く override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject!) { if (segue.identifier == "toChatListViewController") { // let subVC: SubViewController = (segue.destinationViewController as? SubViewController)! // SubViewController のselectedImgに選択された画像を設定する // subVC.selectedImg = selectedImage } } }

以下のような質問にはリアクションをつけましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

リアクションが多い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

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

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

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

下記のような質問は推奨されていません。

  • 間違っている
  • 質問になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

適切な質問に修正を依頼しましょう。

2016/09/14 20:35

こちらの質問が複数のユーザーから「過去の低評価」という指摘を受けました。

まだ回答がついていません

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

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

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

ただいまの回答率
86.12%

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

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

質問する

関連した質問

同じタグがついた質問を見る

Xcode

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

Swift

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