私が達成しようとしているのは、UICollectionView
を含む3x3テーブルです。ただし、アプリケーションの実行時にセルが表示されないだけです。 CollectionView
の背景色は表示されますが(これは青に設定されています)誰かがここで手伝ってくれませんか?
私がやったことは、storyboard
を作成し、それにCollectionViewController
をドラッグするだけです。このコントローラーはネストされたCollectionView
も持ってきました。次に、設定を使用して背景を青にし、背景を紫にしたセルを追加しました(どちらもテストのみ)。最後にUILabel
をそれにドラッグしました。実行すると、青い背景のみが表示されますが、エディターにはっきりと表示されていても、セルは表示されません。次に、カスタムUICollectionViewController
を作成して、クラスを標準クラスの代わりにCollectionViewController
に割り当て、セルに同じことを行いました(カスタムUICollectionViewCell
を割り当てます) 。カスタムUICollectionViewController
には、次のメソッドを実装しました。
-(NSIntegear)numberOfSectionsInCollectionView:(UICollectionView *)collectionView
{
return 1;
}
-(NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section
{
return 9;
}
-(UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *cellIdentifier = @"Cell";
AboutYourGoalsMultiSelectionCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:cellIdentifier forIndexPath:indexPath];
[[cell goal]setText:@"T"];
return cell;
}
セルの識別子を「Cell」に設定し、dataSourceのアウトレット接続を作成し、CollectionViewとカスタムUICollectionViewControllerの間を委任しました。すべてが正常にコンパイルされます。それで私は何が欠けているのですか?エディターを使用するだけでこれらのすべての調整を行う前に、何らかの方法で表示されるべきではありませんか?
直接的な解決策が見つからなかったので、新しいプロジェクトをセットアップして同じ変更と微調整を行ったところ、驚くべきことに、今回はすべてが最初からうまくいきました。次に、ストーリーボードを古いプロジェクトにコピーし、古いファイルをすべて削除して、新しいプロジェクトのファイルに置き換えました。これまでのところすべてがうまく機能しています。実際のエラーが何であったかはわかりませんが、問題が解決したことを嬉しく思います。私の質問を見てくれた皆さん、ありがとう!
ここで私の答えを参照 、つまり、ストーリーボードで作業している場合は、この行を削除する必要があります:
// Register cell classes
[self.collectionView registerClass:[UICollectionViewCell class] forCellWithReuseIdentifier:reuseIdentifier];
エラーの一般的な原因は、データソースとデリゲートがアウトレットに設定されていないことです
コードの最初の行にエラーがあります。
-(NSIntegear)numberOfSectionsInCollectionView:(UICollectionView *)collectionView
NSIntegear
はNSInteger
である必要があります。
Xcodeがこのエラーでプロジェクトを実行することを許可していないので、それが問題であるかどうかはわかりません。私はあなたが言及したのとまったく同じ手順(ラベルなし)を試してみましたが、上記の修正を加えたので、うまくいきました。ここにスクリーンショットがあります:
単純なCollectionViewController(カスタムではなく、実装による)のみを作成しようとしていて、アプリケーションの実行時にセルが表示されない場合は、次の手順に従ってください。
作成したクラスを開いて、次のようにメソッドを編集します。
override func numberOfSectionsInCollectionView(collectionView: UICollectionView) -> Int {
//#warning Incomplete method implementation -- Return the number of sections
return 1
}
override func collectionView(collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
//#warning Incomplete method implementation -- Return the number of items in the section
return 1
}
"return"値(デフォルトでは0)を編集するだけで、表示するセルまたはアイテムの数を書き込むか、作成した(この場合、ここでは1つのセルしか作成していません)。
[ios] [Swift3] [xcode]