2015-02-09 3 views
1

У меня есть два типа UICollectionViewCell: одна ячейка галереи, а другая - ячейка рецепта.Как мы можем использовать два типа UICollectionViewCell для одного UICollectionView?

Существует кнопка переключения. В первый раз, когда загружается представление, ячейка галереи используется для отображения в виде коллекции.

Но при нажатии кнопки переключения я попытался загрузить еще одну ячейку: (ячейка рецепта), но она разбилась, сказав, что в ячейке галереи нет свойства (на самом деле это свойство ячейки рецепта).

Есть ли способ загрузить один и тот же вид коллекции с другой ячейкой?

Заранее спасибо.

РЕДАКТИРОВАТЬ:

if (isGalleryOnCollectionView) { 

    ProfileFollowerCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"cell" forIndexPath:indexPath]; 

    NSString *followerName; 

    if ([[arr_followerNames objectAtIndex:indexPath.row] isEqualToString:@""]) { 
     followerName=[arr_followersEmail objectAtIndex:indexPath.row]; 
    } 
    else{ 
     followerName=[arr_followerNames objectAtIndex:indexPath.row]; 
    } 

    NSLog(@"\n\n\n follower name is :: %@\n\n",followerName); 

    cell.lbl_followerName.text = followerName; 

}else{ 

     GalleryCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"cell" forIndexPath:indexPath]; 


     cell.lbl_recipeName.text = [[[dict_profileData valueForKey:@"recipes"] valueForKey:@"name"] objectAtIndex:indexPath.row]; 


} 

РЕШЕНИЕ:

[self.profleCollectionView registerClass:[ProfileFollowerCell class] forCellWithReuseIdentifier:@"followercell"]; 

После регистрации от кончика пера, прежде чем повторно используемого идентификатора извлечения из очереди он работает.

+1

Почтовый индекс, который '- (UICollectionViewCell *) collectionView: (UICollectionView *) collectionView cellForItemAtIndexPath: (NSIndexPath *) indexPath' возвращает – random

+0

@random, если я загружаю один тип ячейки, скажем, ProfileFollowerCell в представлении коллекции, и если я перезагружу viewview и попытаюсь использовать следующую ячейку, он сработает (использует старую ячейку) – user3804063

+0

Я попытался сделать nview коллекции перед перезагрузкой, но не works – user3804063

ответ

3

Here is a good tutorial on creating custom UICollectionViewCell with xibs.

Какую недостающее оказывает это в -(void)viewDidLoad

UINib *cellNib = [UINib nibWithNibName:@"ProfileFollowerCellNib" bundle:nil]; 
[self.collectionView registerNib:cellNib forCellWithReuseIdentifier:@"TheNibCellIdentifier"]; 

Вы также должны убедиться, что использовать соответствующий ReuseIdentifier при загрузке ячейки:

ProfileFollowerCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"TheNibCellIdentifier" forIndexPath:indexPath]; 
+0

Я тоже понял это, но в любом случае спасибо , а также спасибо за pointin g мой идентификатор повторного использования. – user3804063

Смежные вопросы