如何避免UICollectionView重复单元格?

时间:2015-02-25 09:53:45

标签: ios objective-c uicollectionview uicollectionviewcell

你好我有一个UICollectionView。我从NSMutableArray加载数据,它有4个对象。但我的问题是它再次重复相同的细胞。

`

- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section {
return mutArrayArtists.count;
}



- (NSInteger)numberOfSectionsInCollectionView: (UICollectionView *)collectionView {
return 2;
 }



- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView  cellForItemAtIndexPath:(NSIndexPath *)indexPath{
static NSString *identifier = @"Cell";

UICollectionViewCell *cell = [collectionView   dequeueReusableCellWithReuseIdentifier:identifier forIndexPath:indexPath];

artist = [mutArrayArtists objectAtIndex:indexPath.row];
UIImageView *recipeImageView = (UIImageView *)[cell viewWithTag:100];
recipeImageView.image = artist.artistImage;

UILabel *lblArtistname=(UILabel *)[cell viewWithTag:102];
lblArtistname.text=artist.artistName;

UILabel *lblSongCount=(UILabel *)[cell viewWithTag:101];
lblSongCount.text=artist.numberofSongs;
return cell;
 }

`

但结果是这样的 enter image description here

我该如何避免这种情况?请帮帮我

由于

3 个答案:

答案 0 :(得分:2)

- (NSInteger)numberOfSectionsInCollectionView: (UICollectionView *)collectionView {
    return 1;  //instead of 2
}

此处的部分并不代表列数。这意味着集合视图将包含彼此垂直的2个部分

答案 1 :(得分:1)

这是问题所在:

- (NSInteger)numberOfSectionsInCollectionView: (UICollectionView *)collectionView {
    return 2;
}

您有两个部分到集合视图,并且在您的单元格提供程序中,您不区分这些部分。将其更改为return 1;(假设您确实只需要集合中的一个部分)或更新cellForItemAtIndexPath函数(通过检查indexPath.section)以按照您的意图将这些部分拆分。

答案 2 :(得分:1)

这可能会有所帮助

  - (NSInteger)numberOfSectionsInCollectionView:(UICollectionView *)collectionView

    {

        return 1;
    }