У меня есть 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 в одной ячейке вид скрыт во всех остальных ячейках.