如何避免 UICollectionView 重复单元格?
How to avoid UICollectionView repeating cells?
你好,我有一个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;
}
`
但是结果是这样的
我怎样才能避免这种情况?请帮助我
谢谢
- (NSInteger)numberOfSectionsInCollectionView: (UICollectionView *)collectionView {
return 1; //instead of 2
}
这里的节不是指栏数。这意味着集合视图将包含 2 个部分,彼此垂直
这是问题所在:
- (NSInteger)numberOfSectionsInCollectionView: (UICollectionView *)collectionView {
return 2;
}
集合视图有两个部分,在您的单元格提供程序中,您没有区分这些部分。将其更改为 return 1;
(假设您只需要集合中的一个部分)或更新 cellForItemAtIndexPath
函数(通过检查 indexPath.section
)以按照您的意愿拆分这些部分。
这可能会有帮助
- (NSInteger)numberOfSectionsInCollectionView:(UICollectionView *)collectionView
{
return 1;
}
你好,我有一个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;
}
`
但是结果是这样的
我怎样才能避免这种情况?请帮助我
谢谢
- (NSInteger)numberOfSectionsInCollectionView: (UICollectionView *)collectionView {
return 1; //instead of 2
}
这里的节不是指栏数。这意味着集合视图将包含 2 个部分,彼此垂直
这是问题所在:
- (NSInteger)numberOfSectionsInCollectionView: (UICollectionView *)collectionView {
return 2;
}
集合视图有两个部分,在您的单元格提供程序中,您没有区分这些部分。将其更改为 return 1;
(假设您只需要集合中的一个部分)或更新 cellForItemAtIndexPath
函数(通过检查 indexPath.section
)以按照您的意愿拆分这些部分。
这可能会有帮助
- (NSInteger)numberOfSectionsInCollectionView:(UICollectionView *)collectionView
{
return 1;
}