IOS: Как добавить одно изображение чуть выше панели навигации - PullRequest
0 голосов
/ 14 ноября 2011

Я хочу добавить изображение чуть выше панели навигации. Вот конечный результат картины, которую я хочу: нажмите меня

В начале, я думаю, это довольно просто:

  1. Используя UIBuilder, добавьте один UIImage и один UIView
  2. Добавление контроллера панели навигации в UIView в качестве его корневого представления

Я думал, что иерархия должна выглядеть следующим образом: UIViewController-> UIView-> NavigationBarController. (Здесь UIView - это одно подвид представления UIViewController)

Ниже приведен один из кодов, которые я пробовал, subView - это IBOutlet одного UIView, созданного UIBuilder

    UINavigationController *test;
    test=[[UINavigationController alloc]init];

    [[subView window] setRootViewController:test];
    [subView.window makeKeyAndVisible];

Но после нескольких попыток я обнаружил, что это не работает.

Кто-нибудь делал такую ​​же работу раньше? Если да, пожалуйста, дайте мне несколько советов.

Ответы [ 2 ]

1 голос
/ 14 ноября 2011
self.navigationController.navigationBar.frame = CGRectMake(0, //height of imageView//, self.view.bounds.size.width, 44.0f);
0 голосов
/ 14 ноября 2011

Предложение CodaFi почти там.

Попробуйте это:

test.view.frame = CGRectMake(0, //height of imageView//, self.window.bounds.size.width, //(total height of content... e.g. 460.0f if you leave the status bar visible)-(height of imageView)//);

Однако следует отметить одну вещь ... Контроллеру навигации нравится занимать все используемое пространство на экране, поэтому иногда он автоматически изменяет свой вид на прямоугольник, например, {{0.0f, 0.0f}, { 320.0f, 460.0f}} после поворота устройства. Я испытал это много раз на iPad. Возможно, вам придется начать прослушивание события поворота и сбросить кадр обзора контроллера навигации при каждом повороте на такой, который не блокирует ваше изображение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...