Подтвердить что ты не робот

UITableView, сделать нижний колонтитул в нижней части экрана?

У меня есть UITableView с нижним колонтитулом, заполненным tabBar в пользовательском представлении, выполненным с использованием следующего кода:

- (CGFloat)tableView:(UITableView *)tableView
heightForFooterInSection:(NSInteger)section {
    //differ between your sections or if you
    //have only on section return a static value
    return 49;
}

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

    if(footerView == nil) {
        //allocate the view if it doesn't exist yet
        footerView  = [[UIView alloc] init];
        [footerView addSubview:self.tabBarView];
    }

    //return the view for the footer
    return footerView;
}

Это прекрасно работает, кроме того, когда таблица имеет меньше строк, чем требуется для заполнения экрана, это приводит к тому, что нижний колонтитул перемещается вверх по экрану, поскольку таблица больше не создает пустые строки из-за наличия нижнего колонтитула.

Итак, знает ли кто-нибудь способ блокировки пользовательского нижнего колонтитула в нижней части экрана или, чтобы заставить tableView создавать пустые строки, как это было раньше?

Спасибо!

Гарет

4b9b3361

Ответ 1

К сожалению, я не думаю, что есть простой способ сделать это, за исключением некоторой хитрости иерархии представлений. Когда contentSize вашего UITableView меньше размера кадра, вы назначаете представление нижнего колонтитула self.view и позицию вручную. Когда contentSize вашего UITableView больше размера фрейма, вы используете viewForFooterInSection. Дайте мне знать, если это неясно, или если вы хотите увидеть пример кода, как это сделать.

Ответ 2

У меня такая же проблема для контроллера uitableview, я решил это, добавив вид в окно и удалив этот объект в viewWillDisappear.

Мое решение