У меня есть UIViewController с представлением контейнера. Этот вид контейнера содержит UITableViewController.
UIViewController встроен в UINavigationController.
Я настраиваю NavigationBar, меняя цвет оттенка, цвет оттенка штриха и атрибуты текста заголовка, но когда я пытаюсь изменить прозрачность, у меня есть проблема. Я выделил проблему, удалив все другие коды настройки.
Всякий раз, когда я делаю это в UIViewController -viewDidLoad
:
self.navigationController.navigationBar.translucent = NO;
Container View добавляет некоторое пространство поверх себя, как будто он имеет собственную панель навигации. Всякий раз, когда я устанавливаю прозрачность в YES, вид отображает все правильно. Это происходит только в замкнутом представлении всякий раз, когда я устанавливаю полупрозрачное значение NO.
Есть ли что-то, что мне здесь не хватает?
Я попытался установить прозрачность на YES
в содержащемся представлении, а также установить его в скрытое, но ничего не получилось.
Является ли каким-то образом скрытый вид, наследующий свойства от родительского контейнера?
Как избежать этого лишнего пространства, созданного на скрытом представлении, когда я устанавливаю прозрачность на NO
?
Я ожидал бы, что настройка прозрачности влияет только на прозрачность, но не на положение представлений.
Когда полупрозрачный = ДА
+---------------------------------+
| |
| UINavigationBar |
| |
+---------------------------------+
| |
| |
| |
| |
| |
| UITableViewController |
| in a Contained View |
| |
| |
| |
| |
| |
| |
+---------------------------------+
при полупрозрачности = NO
+---------------------------------+
| |
| UINavigationBar |
| |
+---------------------------------+
| |
|blank space created on top of view
| |
+---------------------------------+
| |
| |
| |
| |
| |
| |
| UITableViewController |
| in a Contained View |
| |
+---------------------------------+
P.S. Мой взгляд более сложный, чем это, я просто хочу.