• ベストアンサー

iOSでCollectionViewが表示されない

iOS開発初心者です。 Xcode 4.6にてstoryboard内にCollection Viewを設置したのですが、シミュレーターで実行するとその部分が真っ黒になり、何も表示されません。 その他の要素は問題なく表示されます。 表示するには何か設定が必要なのでしょうか? 詳しい方、お願いします。

質問者が選んだベストアンサー

  • ベストアンサー
noname#177743
noname#177743
回答No.1

ただ配置しても、何をどういう形で表示するかがわからないと何も表示されません。 CollectionViewは私もまだまともに使ったこと無いんですが、UITableViewと同様にDataSourceに表示データをバインドして表示するようですね。デリゲート及び表示用のビューの用意などが必要のようです。自由度が高い分、それなりに面倒くさいみたいですね。 とりあえず本家のドキュメントにざっと目を通したほうがいいでしょう(下のURL参照)。16ページあたりからデリゲートの設計について説明してあります。 https://developer.apple.com/jp/devcenter/ios/library/documentation/CollectionViewPGforIOS.pdf

shiren2
質問者

お礼

GUIで要素を配置したのですが、その方法では実際には表示されないということでしょうか? 構造がわかっていないので、検討違いをしているかもしれません…。 まずは資料に目を通してみます。 ありがとうございます。

その他の回答 (2)

回答No.3

不完全情報なので、的確な回答は難しいですが。 1)UICollectionViewControllerを、storyboardに、ひっぱってきて、UICollectionViewが作られた場合は、 Data Sourceの記述がされてないなら、真っ黒けの表示は出るでしょう。CollectionViewのDataSourceは、そのコントローラになってますから、対応するプロトコルメソッドは、ダミーか、未実装のどちらかです。あなたが、オーバーライドしないかぎり。 2)storyboardに、UICollectionViewをドラッグして入れ込んだ場合は、UICollectionViewのData Sourceは、誰かが設定してやらなければ、nilです。nilに対しては、どんなメソッドコールをしても、no operationなので、なにもないのと同じです。つまり、セルの数ゼロ、セルサイズなし、とUICollectionViewは認識しているのじゃないでしょうか。    いずれにせよdelegateなり、DataSourceなりを、ちゃんとstoryboardの実体に合わせてやらないと、まともな表示にはならないし、イベントをハンドリングすることも出来ないでしょう。  delegateとDataSourceがわからない人が多いですが、delegateとdataSourceは、ピッチャーとキャッチャーのボールの投げ合いです。ピッチャーからキャッチャーへの球がDataSourceのプロトコル。キャッチャーからピッチャーへの球がdelegateのプロトコル。あなたが、キャッチャー。DataSourceがなければ、どこから球が来るのかわからない。delegateがなければ、どこへ球を返すのかわからない。

shiren2
質問者

お礼

詳しい説明ありがとうございます。 資料を見て理解出来たのですが、どうやらGUIで設定できるのはコレクションビューとレイアウトオブジェクトだけで、データソースオブジェクトは手書きしなければならないようですね。 GUIでデータソースオブジェクトを配置しているつもりが、実際にはレイアウトオブジェクトを弄っていたというのが原因だったようです。 その辺りが理解出来てませんでした。

回答No.2

UITableView:UICollectionView UITableViewController:UICollectionViewController UITableViewCell:UICollectionViewCell の関係がなりたちます。つまり、TableViewの時と同じように、DataSource で、セルを返してやらないといけません。  ただ、置いただけでは、ここは、CollectionViewの表示領域です、ということが示されただけで、中身(UICollectionViewCell)の数や大きさは、いっさいないわけですから、真っ白けか、真っ黒けの表示を出すのは、極めて妥当なインプリメントでしょう。

shiren2
質問者

補足

説明が足りず申し訳ありません。 CollectionViewに複数のCollectionViewCellを設置して、その中にボタンを置いて電卓風にしています。 storyboardの段階では正しく表示されるのですが、シミュレータで実行するとCollectionView以下が真っ黒、という状態です。 ViewCellは設置済みですし、数や配置も自動で計算されていますが、真っ黒です。 よろしくお願いします。

関連するQ&A

  • iOSシミュレータでボタンが重なる

    参考書を見ながらXcodeをインストールして勉強し始めたところですが、 Storyboardで配置したボタンがiOSシミュレータ上ではボタンが重なってしまいます。 よく見ると、StoryboardはiPhone5解像度準拠で、 シミュレータは旧アスペクト比のように見えます。 初心者向けの本を読みながら進めている段階で、どうすればよいかわかりません。 正しい解決方法を教えてください。 Xcode4.6.3 iOSシミュレータ6.0

  • iOSでポップアップ

    質問させてください。 XCodeを使用して、iOSのアプリ開発をしています。 どなたかモーダルビューでポップアップ表示させる方法をご存じないでしょうか。 画面にポップアップウィンドウを表示させようと思うのですが、上手くいきません。 StoryBoardでポップアップウィンドウのサイズは小さく指定しているのですが、 モーダルビューとして表示すると、画面いっぱいに表示されてしまいます。 解決策をご存知でしたらお教えください。 以上よろしくお願いします。

  • iOSシミュレーション上でIPAファイルを実行

    開発中のIPAファイルをiOSシミュレータ上で実行したいのですが、実行方法がわかりません。単純に、iOSシミュレータ上にIPAファイルをドラッグすると、「Download Failed Safari cannot download this file」とメッセージが出て、実行できません。 IPAファイルは、開発中のスマホアプリなので、Safariは関係ないのですが。。。 iOSシミュレータでIPAを実行する方法を、教えて下さい! Xcodeのバージョンは、4.6.3です。

  • iPad用iOSアプリ開発

    iOSアプリ開発初心者です。 iPhone用のアプリが一応開発できたので、 iPad用の開発を始めようとしたのですが、 StoryboardのView Controllerに右側のリストから部品をドラッグしたところ、 View Controllerに載らずに、元に戻ってしまい、作業を進められません。 どうすればView Controllerに部品を載せることができるか、 ご存知の方がいらっしゃいましたら、お教えいただきたく、 よろしくお願いいたします。

  • iosシミュレーターの不具合

    iPhoneのアプリの作成を勉強し始めの者です。 初心者向けの入門書を片手にとりあえずXcode5.0.2を用いてまずはアイフォン上でどう動くかを見てみたところ、どうもiOSシミュレーター(7.0)の表示のされ方がおかしい気がするのです。(添付画像) iOSシミュレーターのこのような表示から通常のiPhoneのような表示にしたいのですが、どのようにすれば良いか分かりません。 どなたか詳しい方がおりましたらご教授お願いいたします。

  • iosの開発 Storyboardのメモリ消費

    iosの開発について質問です。 StoryboardでModalな循環移動をすると、どんどんメモリを消費していく、 という問題で悩んでいます。xcodeの画面としては、まさにこれです。 http://twitpic.com/855rzk この問題を現在解決できません。 参考になりそうなサイトか、もしくはご教授していただけないでしょうか。

  • 【Objective-c】iPhone専用アプリ

    iPhnoe専用のアプリにしたく、下記の設定をしました。 Build Settingsの [Targeted Device Family] をiPhone/iPad から iPhoneに変更しました。 [iOS Deployment Target] をiOS5.1に指定。 実際にiPad 5.1 SimulatorでRunすると。 MainStoryboard_iPad.storyboardの初期画面に遷移してしまいます。 私のイメージでは。 MainStoryboard_iPhone.storyboardの初期画面を読み込んで、 右下にX2のボタンがある画面が出るのが理想の動きなのですが。 期待する動作になりません。 もし設定方法が違ったり間違ったりしているのであればご指摘下さい。 開発環境 Mac OS X 10.7.4 Xcode:Ver 4.3.3(4E3002) その他、必要な情報がありましたらなんなりとご指摘下さい。

  • xcodeでOpenGLサンプルが実行できない

    おそらく以下の方と同じ現象ですが、明確な答えが出ていないため質問させていただきます。 http://okwave.jp/qa/q6762430.html xcodeの新規プロジェクト作成から OpenGL ES Application を選択し、そのままビルド実行するのですが、iPhoneシミュレータ起動後、すぐ落ちてしまいます。 エラーなどは出ません。 OpenGLの書籍についているサンプルを実行しても同様の結果でした。 また、View-Based Application ですと、問題なく実行できます。 プロジェクト固有の問題ではく、xcodeの設定、またはシミュレータの設定などの環境の問題だと思うのですが、同様の現象を解決した方はいらっしゃいますでしょうか。 環境 OS : Mac OS X 10.6.8 CPU : 2.3 GHz intel Core i5 xcode バージョン 3.2.6 64bit iOS シミュレータ バージョン 4.3

  • iOS開発に必要な環境

    こんにちは、 iOS開発、つまりipadやiphoneなどのアプリの開発に必要な環境についてお尋ねしたいと思います。 使用しているOSは、Leopard(10.5)なんですが、この環境でiOS4(そしてiOS5)用のアプリケーションを開発できますか?Xcode 4はLeopardで動作しますか?それで開発されたアプリケーションはちゃんとiOS4で使えるのでしょうか? 詳しい方がいらっしゃいましたら、教えていただければありがたい。

  • Xcode 6.3.1 iOSシミュレータについて

    先日、Xcode 6.3.1にアップデートをしたのですが、それ以降、iOSシミュレータの画面サイズが、iPhoneのサイズぴったりではなく、大きく拝啓が黒いウインドウにiPhoneの画面が表示されるようになりました。(ウインドウの中に黒い余白がある感じで、上下左右のスクロールバーが表示されます) 表示サイズの変更等を行ってみたのですが、ウインドウの中でiPhone画面の大きさが変わるだけで、黒い部分は消えませんでした。 どうすれば、iPhoneのサイズぴったりの大きさにできるのでしょうか。