如图:我在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
请大神解释啊。。。。。。
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:
terbahagi kepada dua
xib
, saturegisterNib:
pada satu masaSintesis satu, tetapi mulakan tika itu sendiri:
Adalah disyorkan bahawa satu fail xib sepadan dengan satu Paparan, tidak perlu menyimpan fail
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