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

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

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

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

Swift

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

Q&A

1回答

2286閲覧

CollectionViewのサイズを自動調整したい

ay49

総合スコア3

iOS

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

Swift

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

0グッド

0クリップ

投稿2020/06/17 12:14

編集2022/01/12 10:55

##実現したいこと
CollectionViewの大きさがアプリごとに異なってしまうため、AutoLayout設定をして同じ大きさの表示にしたい

##試していること
CollectionView自体を変えることはできないのではないかと思い、CollectionViewCellのサイズを自動調整するコードの実装。
しかし何度試してもPreviewでアプリごとにCollectionViewの大きさが変わっている。

以下にViewController と CollectionView.cellのコードを載せます

swift

1 override func viewDidLoad() { 2 super.viewDidLoad() 3 4 //UICollectionViewFlowLayoutをインスタンス化 5 let layout = UICollectionViewFlowLayout() 6 layout.sectionInset = UIEdgeInsets(top: 15, left: 5, bottom: 15, right: 5)//レイアウトを調整 7 layout.minimumInteritemSpacing = 0 8 collectionView.collectionViewLayout = layout 9 if let flowLayout = collectionView.collectionViewLayout as? UICollectionViewFlowLayout { 10 flowLayout.estimatedItemSize = UICollectionViewFlowLayout.automaticSize 11 } 12 13 collectionView.delegate = self 14 collectionView.dataSource = self 15 } 16 17 //セルの個数を指定します 18 func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int { 19 return imageArray.count 20 } 21 //セルの中身の表示の仕方を設定します 22 func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell { 23 //表示するCellの登録 24 let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "Cell", for: indexPath) as! MyCustomCell 25 26 cell.cameraImageView.image = imageArray[indexPath.row] 27 28 return cell 29 } 30 31 //セルの配置について決める 32 func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize { 33 let horizontalSpace : CGFloat = 10 34 let cellSize : CGFloat = self.view.bounds.width / 3 - horizontalSpace 35 return CGSize(width: cellSize, height: cellSize) 36 }

swift

1import UIKit 2import DKImagePickerController 3 4class MyCustomCell: UICollectionViewCell { 5 @IBOutlet weak var cameraImageView: UIImageView! 6 7 override func awakeFromNib() { 8 super.awakeFromNib() 9 10 self.contentView.translatesAutoresizingMaskIntoConstraints = false 11 let leftConstraint = self.contentView.leftAnchor.constraint(equalTo: self.leftAnchor) 12 let rightConstraint = self.contentView.rightAnchor.constraint(equalTo: self.rightAnchor) 13 let topConstraint = self.contentView.topAnchor.constraint(equalTo: self.topAnchor) 14 let bottomConstraint = self.contentView.bottomAnchor.constraint(equalTo: self.bottomAnchor) 15 NSLayoutConstraint.activate([leftConstraint, rightConstraint, topConstraint, bottomConstraint]) 16 } 17} 18

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

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

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

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

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

退会済みユーザー

退会済みユーザー

2020/06/17 12:28

>CollectionViewの大きさがアプリごとに異なってしまう 数種類のアプリに共通する設定はできないのでアプリごとに大きさをしていしてください。 大きさを調整したいのはcollectionViewですか?collectionViewCellですか?cameraImageViewですか?
ay49

2020/06/17 12:38

tybiogorou様 コメントありがとうございます 情報不足で申し訳ありません 私が変更したいのはCollectionViewのサイズです cellやcameraImageViewのサイズはコードで設定したつもりなのですが、CollectionViewのサイズがアプリによってバラバラなので直したいと考えています
退会済みユーザー

退会済みユーザー

2020/06/17 12:44 編集

アプリによってバラバラなのは当たり前ですが。 画面の大きさごとに変えたいならば、collectionViewにAutoLayouを設定してあげてくださいな 。
ay49

2020/06/17 12:47

アプリではありません、失礼しました 正しくはスマホの機種です スマホの機種が異なる(例えば画面の小さいiPhone8 plusや画面の大きいiPhone11pro max)でも同じように画面の横幅分のCollectionViewを表示したいと考えています どのように書き直すべきか対処法がわかりましたら教えていただけると幸いです
退会済みユーザー

退会済みユーザー

2020/06/17 13:40

まず、質問のタイトルを直されては?
guest

回答1

0

collectionViewCell内でやっている方法でいいので、
collectionViewにAutoLayouを設定してあげてくださいな。

投稿2020/06/18 01:56

編集2020/06/18 01:58
退会済みユーザー

退会済みユーザー

総合スコア0

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

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

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

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問