ios - CollectionView.xib中创建多个nibCell,用的时候如何使用??
天蓬老师
天蓬老师 2017-04-18 09:29:28
0
6
851


如图:我在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
请大神解释啊。。。。。。

天蓬老师
天蓬老师

欢迎选择我的课程,让我们一起见证您的进步~~

membalas semua(6)
大家讲道理

Anda menciptanya menggunakan nib, bukankah anda sepatutnya menggunakan registerNib untuk mendaftarkannya? Mengapa menggunakan regClass.

左手右手慢动作

Fail xib dibaca dengan betul
NSArray *nibArrays=[[NSBundle mainBundle]loadNibNamed:@"LongCell" owner:nil options:nil];

左手右手慢动作

Dua kaedah:

  1. terbahagi kepada dua xib , satu registerNib: pada satu masa

  2. Sintesis satu, tetapi mulakan tika itu sendiri:

    - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
    {
        if (indexPath.row % 2) {
            UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"LongCellFirst"];
            if (!cell) {
                cell = [[UINib nibWithNibName:@"LongCell" bundle:nil] instantiateWithOwner:self
                                                                                   options:nil].firstObject;
            }
    
            return cell;
        }
        else {
            UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"LongCellSecond"];
            if (!cell) {
                cell = [[UINib nibWithNibName:@"LongCell" bundle:nil] instantiateWithOwner:self
                                                                                   options:nil].lastObject;
            }
    
            return cell;
        }
    }
大家讲道理

Adalah disyorkan bahawa satu fail xib sepadan dengan satu Paparan, tidak perlu menyimpan fail

Peter_Zhu

Mengikut kaedah yang disebutkan di atas, sel boleh dipaparkan, tetapi tetapan kawalan dalam sel tidak memberi kesan.

黄舟

Apabila mengaitkan kawalan pada sel dalam sel, jika anda tidak membuat sebarang perubahan. Semua kawalan berkaitan anda lalai kepada kawalan pada sel1. Secara umumnya, apabila menyambung, kawalan pada sel pertama digunakan secara lalai

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan