У меня есть контроллер навигации, который я не хочу использовать на весь экран. В частности, я хочу поместить изображение логотипа в панель в верхней части экрана. К сожалению, навигационный контроллер, похоже, не разработан таким образом. В построителе интерфейса я не могу заставить его заняться частью экрана. Как бы вы достигли эффекта изображения логотипа вверху и контроллера навигации, занимающего остальную часть экрана?Контроллер навигации, который не использует весь экран
1
A
ответ
2
Я сам этого не делал, но это должно быть довольно прямолинейно. Вам нужен контроллер представления обертки, чтобы быть его родителем (назовем его MyWrapperViewController
), и его вид иерархия в конечном итоге может выглядеть примерно так:
UIView -+ (hooked up to the view outlet in MyWrapperViewController) | +-- UIView (Your logo goes here) | +-- UIView (The "child" navigation controller's view)
мнение логотипа может быть UIView
, или UIImageView
или любой класс подходит для контента.
При создании UINavigationController
где-то для вашего MyWrapperViewController
класса, вы можете изменить его view
bounds
к чему-то меньше, чем полный экран (возможно, размер экрана минус размер вашего логотипа, с соответствующим origin
смещением так что ниже логотип), а затем добавить его в качестве подзаголовка.
Это в основном работало, но я столкнулся с проблемой с верхним UIView [перекрытием строки состояния] (http://stackoverflow.com/questions/3767066/layered-uiviewcontrollers-overlaps-status-bar) – Casebash