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 создавать пустые строки, как это было раньше?
Спасибо!
Гарет
Ответы
Ответ 1
К сожалению, я не думаю, что есть простой способ сделать это, за исключением некоторой хитрости иерархии представлений. Когда contentSize вашего UITableView меньше размера кадра, вы назначаете представление нижнего колонтитула self.view и позицию вручную. Когда contentSize вашего UITableView больше размера фрейма, вы используете viewForFooterInSection. Дайте мне знать, если это неясно, или если вы хотите увидеть пример кода, как это сделать.
Ответ 2
У меня такая же проблема для контроллера uitableview, я решил это, добавив вид в окно и удалив этот объект в viewWillDisappear.
Мое решение