Ответ 1
Исправить программно:
- (void)viewDidLoad {
UIEdgeInsets inset = UIEdgeInsetsMake(20, 0, 0, 0);
self.tableView.contentInset = inset;
}
У меня есть TabBarController, одна из вкладок которого содержит под просмотр, который является navigationController. Затем я загружаю в контроллер навигации представление, которое наследует форму UITableViewController.
Моя проблема заключается в том, что по какой-то причине представление таблицы начинает отображаться в навигационном контроллере, а не в верхней части экрана, но примерно на половину пути вниз по панели навигации, поэтому верхняя часть первой ячейки в представлении таблицы отключена.
Кто-нибудь может предложить, как переместить UITableViewController?
Исправить программно:
- (void)viewDidLoad {
UIEdgeInsets inset = UIEdgeInsetsMake(20, 0, 0, 0);
self.tableView.contentInset = inset;
}
Эта проблема "заправлена за панель навигации" связана с тем, что iOS 7 автоматически использует полноэкранный макет. См. Руководство по переходу iOS 7.
Это немного странно, так как он отображается, как в iOS 6 в симуляторе (макет, т.е. не заправлен сзади).
Является ли ваша панель навигации полупрозрачной? Mine был и установил его на непрозрачные исправления на Iphone iOS 6, iPhone iOS 7 и Simulator 7.0 с XCode 5. (В моем случае я установил его полупрозрачным для визуального внешнего вида.)
Вы можете установить кадр UITableView в явную позицию X, Y, установив свойство кадра в представлении. Или вы можете изменить одно и то же свойство с помощью конструктора интерфейса в зависимости от того, добавили ли вы табличное представление через IB или код.
например.
myTable.frame = CGRectMake(0.0, myTable.frame.origin.y + NAV_BAR_HEIGHT, myTable.frame.size.width, myTable.frame.size.height);
Это приведет к установке таблицы myTable (которая является указателем на UITableView) под панелью навигации, вам также может потребоваться соответствующим образом отрегулировать высоту таблицы. Высота строки навигации, которую я указываю с константой, равна 44,0.
Обычно я выполняю настройку такого типа, если это необходимо в представлении viewWillAppear диспетчера представлений. Это не так, что вам нужно будет сделать этот тип настройки, чтобы можно было что-то исправить, изменив способ настройки ваших просмотров.
Без подробностей о настройке вашего представления трудно быть более конкретным.