UITableView - просмотр в пользовательской ячейке Xib не скрывается независимо от других ячеек - PullRequest
0 голосов
/ 30 октября 2019

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

...