検索

ホームページ  >  に質問  >  本文

ios - CollectionView.xib中创建多个nibCell,用的时候如何使用??


如图:我在collection.xib中创建了2个cell,定义了不同的identifier,

使用的时候:

     NSArray *nibArrays = [[UINib nibWithNibName:@"LongCell" bundle:nil] instantiateWithOwner:nil options:nil];
    [collectionView registerClass:[[nibArrays objectAtIndex:0] class] forCellWithReuseIdentifier:@"LongCellFirst"];
    [collectionView registerClass:[[nibArrays objectAtIndex:1] class] forCellWithReuseIdentifier:@"LongCellSecond"];
#pragma mark - UICollectionViewDelegate DataSource -
- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath {
    if (indexPath.item % 2 == 0) {
        LongCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"LongCellFirst" forIndexPath:indexPath];

        return cell;
    }else {
        LongCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"LongCellSecond" forIndexPath:indexPath];
        return cell;
    }
}

这样能运行,但是取出的cell都是上面什么也没有。
是我注册cell不对吗??还是因为不能这样用?tableViewCell.xib就可以这样搞啊?
tableView.xib中创建多个cell
请大神解释啊。。。。。。

天蓬老师天蓬老师2772日前855

全員に返信(6)返信します

  • 大家讲道理

    大家讲道理2017-04-18 09:31:28

    nib を使用して作成しましたが、registerNib を使用して登録する必要はありませんか? regClass を使用する理由。

    返事
    0
  • ringa_lee

    ringa_lee2017-04-18 09:31:28

    xib ファイルが正しく読み取られませんでした
    NSArray *nibArrays=[[NSBundle mainBundle]loadNibNamed:@"LongCell" owner:nil options:nil];

    返事
    0
  • ringa_lee

    ringa_lee2017-04-18 09:31:28

    2 つの方法:

    1. は 2 つの xib に分割され、一度に 1 つの registerNib:

      になります。
    2. インスタンスを合成しますが、インスタンスは自分で初期化します:

      リーリー

    3. 返事
      0
  • 大家讲道理

    大家讲道理2017-04-18 09:31:28

    1 つの xib ファイルが 1 つのビューに対応することをお勧めします。ファイルを保存する必要はありません

    返事
    0
  • 天蓬老师

    天蓬老师2017-04-18 09:31:28

    上記の方法でセルは表示できますが、セル内のコントロール設定は効果がありません。作者は問題を解決しましたか?

    返事
    0
  • 黄舟

    黄舟2017-04-18 09:31:28

    セル内のセルにコントロールを関連付けるとき、何も変更しない場合。関連するすべてのコントロールはデフォルトで cell1 のコントロールになります。一般に、接続するときは、最初のセルのコントロールがデフォルトで使用されます

    返事
    0
  • キャンセル返事