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

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

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

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

Swift

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

Q&A

解決済

1回答

3468閲覧

UICollectionViewCellが表示されない

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/07 17:14

###Instagramのような、横に3つのUIControllerViewCellが並ぶCollectionViewを作っています

######問題点:エラーコードは出ないのですが、Cellが表示されません。
カラーは灰色にしているので表示されたら見えるようにしています。
また、IdentifierもCellに設定してます
おかしいところはないと思うのですが表示されずに悩んでいます
どなたか対処法がわかる方いましたら教えていただけると嬉しいです。

以下にコードを載せます

swift

1class MakeViewController: UIViewController,UIImagePickerControllerDelegate,UINavigationControllerDelegate,UICollectionViewDelegate, UICollectionViewDataSource, UICollectionViewDelegateFlowLayout { 2 3 @IBOutlet var cameraImageView: UIImageView! 4 @IBOutlet var filterButton : UIButton! 5 @IBOutlet var editButton : UIButton! 6 @IBOutlet var collectionView : UICollectionView! 7 8 //画像加工するための元となる画像 9 var originalImage: UIImage! 10 11 //画像加工するフィルターの宣言 12 var filter: CIFilter! 13 14 override func viewDidLoad() { 15 super.viewDidLoad() 16 //UICollectionViewFlowLayoutをインスタンス化 17 let layout = UICollectionViewFlowLayout() 18 layout.sectionInset = UIEdgeInsets(top: 15, left: 15, bottom: 15, right: 15)//レイアウトを調整 19 collectionView.collectionViewLayout = layout 20 } 21 22 //表示するセルの数 23 func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int { 24 //今回はセルを20個にしてみる 25 return 20 26 } 27 28 func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell { 29 //表示するCellの登録 30 let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "Cell", for: indexPath) 31 //セルの背景色をgrayに 32 cell.backgroundColor = .gray 33 34 return cell 35 } 36 37 //セルの配置について決める 38 func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize { 39 let horizontalSpace : CGFloat = 20 40 let cellSize : CGFloat = self.view.bounds.width / 3 - horizontalSpace 41 return CGSize(width: cellSize, height: cellSize) 42 } 43

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

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

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

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

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

TsukubaDepot

2020/06/07 23:26

提示されたコードで問題なく20個のセルが表示されるようですが、dataSource, delegate の設定は行っていますでしょうか(私はコード中に直接記入しました)。
ay49

2020/06/08 03:04

@TsukubaDepot 様 ご返信いただきありがとうございます。 「dateSource, delegateの設定」というのは「Outletsからの接続」ということであっていますでしょうか?  見落としていたため、先ほど2つをCollectionViewと接続したのですがやはりCellが表示されません。 (私はコード中に直接記入しました)とあるのですが、直接記入する場合どのように記入すべきか教えていただくことは可能でしょうか?
TsukubaDepot

2020/06/08 03:08

StoryBoard上で接続したのであれば大抵大丈夫かと思いますが、コードベースであれば collectionView.delegate = self collectionView.dataSource = self を viewDidLoad() 内に追記します。 また、collectionView()の各メソッド(delegate)内に print(#function) のように何らかの情報を表示する関数を入れ、必要なときに各メソッドが呼び出されているか確認してみるといいかと思います。
ay49

2020/06/08 03:23

@TsukubaDepot 様 ご返信ありがとうございます ViewDidLoad内に collectionView.delegate = self collectionView.dataSource = self のコードを記入したところきちんとCellが表示されるようになりました! 私のCollectionViewについての理解が浅かったです、、アドバイスをくださり本当にありがとうございました
TsukubaDepot

2020/06/08 04:02

解決されたようでよかったです。 StoryBoardで行う際も https://i-app-tec.com/ios/collectionview.html の「ViewController と CollectionView の紐付け」の通りなので、どこか手順が違っているだけかと思います。 解決したようであれば、このご質問が自己解決ということで閉じていただければと思います。
ay49

2020/06/08 05:55

@TsukubaDepot様 リンクのページを視聴し、自分がViewControllerに繋げていなかったことに気づきました。 コードで解決する方法とStoryBoardで解決する方法の2通りを教えてくださり本当にありがとうございました、重ねてお礼申し上げます。 解決という形で閉じさせていただきます
guest

回答1

0

自己解決

dataSource, delegate の設定を行っていなかったこと
ViewController と CollectionView の紐付けができていなかったことが原因でした。@TsukubaDepot様のおかげで解決に至りました
ありがとうございました。

投稿2020/06/08 05:57

ay49

総合スコア3

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問