我有一个带有自定义单元格(自定义单元格xib)的UITableView。此自定义单元xib包含另一个xib,该xib具有一些根据绑定到单元的数据需要隐藏的视图。 在单元格中隐藏视图时,所有单元格中的视图都被隐藏。
这是行为标准吗?有没有办法只在一个单元格中隐藏标签?
编辑
UITableView cellForItemAtIndexPath 方法:
- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView
cellForItemAtIndexPath:(NSIndexPath *)indexPath {
CellBasic *cell = (CellBasic *)[collectionView dequeueReusableCellWithReuseIdentifier:@"CellBasic" forIndexPath:indexPath];
cell.title.text = currentItem.title;
cell.genre.text = currentItem.genre;
[cell.viewExtraInfo setDetails:(currentItem.format.length > 0) ? currentItem.format : NULL
type:(currentItem.type != nil) ? currentItem.type : NULL
rating:NULL];
UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tappedOnItem:)];
[cell.viewExtraInfo.viewFormatBadge addGestureRecognizer:tap];
cell.viewExtraInfo.viewFormatBadge.tag = indexPath.row;
cell.viewExtraInfo.viewFormatBadge.userInteractionEnabled = YES;
return cell;
}
表视图中的每个单元格都包含一个子xib( viewExtraInfo ),该子对象还包含一个带有三个视图的水平UIStackView,每个视图具有三个标签(viewTypeBadge-labelType,viewFormatBadge-labelFormat,viewRating-labelRating)
每个单元格的表格视图调用的 setDetails 方法(在 viewExtraInfo 中):
- (void) setDetails:(NSString*) format
type:(NSString*) type
rating:(NSString*) rating {
if (type){
self.labelType.text = type;
} else {
self.viewTypeBadge.hidden = YES;
}
if (format){
self.labelFormat.text = format;
} else {
self.viewFormatBadge.hidden = YES;
}
if (rating) {
self.labelRating.text = rating;
} else {
self.viewRating.hidden = YES;
}
在一个单元格中隐藏 viewFormatBadge 时,视图将在所有其他单元格中隐藏。