Нижний колонтитул накладывается поверх содержимого ячейки таблицы во время прокрутки

Я добавил footerview программно для каждого раздела следующим образом. Я мог видеть footerview.

Однако, когда я прокручиваю вверх или вниз внизу или вверху таблицы, footerview накладывается поверх tableviewcells.

Как я мог отключить его?

- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section
{
    if(adminOrderElements[section].expanded && [adminOrderElements[section].notes length]>0)
    {
        return 60;
    } else {
        return 0;
    }

    return 60;
}

- (UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section
{
    UIView *footer = [[UIView alloc]initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, 60)];
    footer.backgroundColor = [UIColor clearColor];

    UILabel *lbl = [[UILabel alloc]initWithFrame:footer.frame];
    lbl.backgroundColor = [UIColor clearColor];
    lbl.text = @"Your Text";
    lbl.textAlignment = NSTextAlignmentCenter;
    [footer addSubview:lbl];

    return footer;
}

Перед прокруткой

введите здесь описание изображения

После прокрутки

введите здесь описание изображения


person casillas    schedule 01.08.2017    source источник
comment
Какой рост у вашего heightForFooterInSection? 60 или 0?   -  person Paulw11    schedule 01.08.2017
comment
Если есть footerview, то это 60. если нет, то это 0 на основе if(adminOrderElements[section].expanded && [adminOrderElements[section].notes length]>0)   -  person casillas    schedule 01.08.2017
comment
Я бы предложил добавить точку останова в другой части, где вы возвращаете 0, и проверить, идет ли она туда, и я думаю, вам не нужен второй оператор return 60   -  person 3stud1ant3    schedule 01.08.2017
comment
@Paulw11 и @user1000 Если вы проверите первое изображение, Order 4 не имеет содержимого для отображения на footerview, поэтому нет представления нижнего колонтитула, другими словами, высота равна 0. Но Order 3 имеет некоторый контент, поэтому высота нижнего колонтитула равна 60, и вы можете увидеть там метку (Your Text).   -  person casillas    schedule 01.08.2017
comment
Я думаю, что ваш код в порядке, пожалуйста, задайте синий цвет для нижнего колонтитула раздела и прокрутите, вы увидите, что он работает нормально, и он не перекрывает то, что должно быть там, пожалуйста, проверьте   -  person 3stud1ant3    schedule 01.08.2017
comment
Что вы думаете об этом? stackoverflow.com/questions/5740518/   -  person casillas    schedule 01.08.2017
comment
Вы просите сделать footer.backgroundColor = [UIColor clearColor]; до footer.backgroundColor = [UIColor blueColor]; и протестировать?   -  person casillas    schedule 01.08.2017
comment
Вы хотите, чтобы нижний колонтитул был в конце таблицы или в конце раздела? И да, измените цвет на синий.   -  person 3stud1ant3    schedule 01.08.2017
comment
Я хочу добавить footerview для each section, а не для всего tableview.   -  person casillas    schedule 01.08.2017
comment
Давайте продолжим обсуждение в чате.   -  person 3stud1ant3    schedule 01.08.2017
comment
По замыслу ячейки таблицы будут уходить под нижний колонтитул; Вам нужно использовать непрозрачный цвет для нижнего колонтитула.   -  person Paulw11    schedule 01.08.2017
comment
не могли бы вы проиллюстрировать код?   -  person casillas    schedule 01.08.2017
comment
Согласно вашему коду, я думаю, вы возвращаете новый объект UIView в виде нижнего колонтитула для каждого раздела, даже для тех разделов, для которых вы не хотите отображать нижний колонтитул, и в этом проблема. Итак, я думаю, что вы должны вернуть пустое представление, когда нижнего колонтитула нет, поэтому вы также можете указать условия viewForFooterInSection для проверки, хотите ли вы показать нижний колонтитул или нет, а затем вернуть объект foorterview или nil.   -  person Paras Gorasiya    schedule 01.08.2017


Ответы (1)


Если я правильно понял ваш вопрос, вам нужно только изменить UITableViewStyle на UITableViewStyleGrouped. Согласно документам, для табличных представлений используется сгруппированный стиль верхние и нижние колонтитулы разделов не перемещаются.

person phi    schedule 01.08.2017