Заголовок в TableView повторяется несколько раз

У меня проблема с некоторыми заголовками, которые повторяются на экране. Кажется, он появляется, когда я щелкаю текстовое представление в TableViewCell, оно автоматически прокручивается, чтобы поместить ячейку в середину экрана, и я пишу в нее в течение всего этого процесса. Заголовок "повторяется" может быть в нижнем колонтитуле или где-либо еще для информации.

Вот скриншот:

Вот код:

- (NSString *)tableView:(__unused UITableView *)tableView titleForHeaderInSection:(NSInteger)index //HEADER
{
    return [[self sectionAtIndex:index].header description];
}

- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
{

    UILabel *myLabel = [[UILabel alloc] init];
    myLabel.frame = CGRectMake(12, 0, tableView.frame.size.width, 25);
    myLabel.font = sectionFont;
    myLabel.textColor = sectionColor;
    myLabel.backgroundColor = colorSegment;
    myLabel.text = [self tableView:tableView titleForHeaderInSection:section];

    UIView *headerView = [[UIView alloc] init];
    [headerView addSubview:myLabel];

    return headerView;
}

2 ответа

Решение

В функции textDidChange добавьте эти строки, чтобы предотвратить завершение анимации или нет до начала работы;

 [CATransaction begin];

    [CATransaction setCompletionBlock: ^{

        [self.tableView beginUpdates];

        [self.tableView endUpdates];

    }];

    [CATransaction commit];

Вам не нужно ничего делать с аргументом представления в willDisplayHeaderViewили переслать что-нибудьdelegate' в viewForHeaderInSection или же heightForHeaderInSection (это методы делегата, так что вы - делегат). heightForHeaderInSection должен возвращать статическое значение, а не UITableViewAutomaticDimension, что может вызвать проблемы с макетом, если не использовать автоматическое расположение. Ваши представления заголовка получены вашимsectionAtIndex', но это может быть проще использовать UItableViewDataSource функция 'titleForHeaderInSection' вместо 'viewForHeaderInSection', или генерируйте UILabels на лету.

Другие вопросы по тегам