Как изменить размер UINavigationController в iPhone? - PullRequest
4 голосов
/ 13 мая 2010

Я создал приложение с UINavigationController, и оно выглядит нормально, теперь я хочу уменьшить размер NavigationController. Как я могу это сделать?

Ответы [ 3 ]

4 голосов
/ 02 июня 2011

Вы можете изменить размер или переместить UINavigatorController, если добавите по коду ...

    - (void)viewDidLoad
    {
            [super viewDidLoad];
            myview_view = [[[MyCustomView alloc] init]autorelease];
            ControlNav = [[UINavigationController alloc] initWithRootViewController:myview_view]; // Init the UINavigatorController
            ControlNav.navigationBarHidden = YES; // Hide the navigation bar
            ControlNav.view.frame = CGRectMake(50, 50, 665, 370);  // Move and resize the UINavigator Controller
            [self.view addSubview:ControlNav.view];  // Add subview
    }

MyCustomView - это UIViewController;

2 голосов
/ 13 мая 2010

Вы не можете.

Согласно документации UINavigationController , единственными параметрами, которые необходимо изменить, являются свойства barStyle и translucent ;

За некоторыми исключениями, вы должны никогда не изменяйте объект панели навигации непосредственно. Допустимо модифицировать barStyle или полупрозрачные свойства панели навигации, но вы должны никогда не меняйте рамку, границы или альфа значения напрямую. К тому же, объект контроллера навигации строит содержимое навигации панель динамически с помощью навигации предметы (экземпляры Класс UINavigationItem) связанный с контроллерами представления на стек навигации. Чтобы изменить содержимое панели навигации, вы Поэтому необходимо настроить элементы навигации для вашего пользовательского представления контроллеры. Для дополнительной информации о пунктах навигации см. Ссылка на класс UINavigationItem.

0 голосов
/ 18 сентября 2010

ВАЖНО: эта идея звучит великолепно и, похоже, работает теоретически, но инфраструктура iAd не позволяет вам добавлять AdBannerView непосредственно в окно UIWindow. <<<<< </p>

Вы можете изменить размер UINavigationController, но не можете переместить верхнюю или нижнюю панель инструментов.

Вот пример того, как AdBanner идет под вашим UINavigationController, но над его нижней панелью инструментов. По вашему мнению, этот AdBanner останется неподвижным - он не будет анимирован с помощью действий вставки и вставки UIViewController.

1) Измените размер вашего UINavigationController в делегате приложения:

navigationController.view.frame = CGRectMake(0, 0, 320, 410);

2) Вручную измените размеры ViewControllers, чтобы добавить пробел ниже. Хорошее место для этого - метод viewDidLoad:

self.view.frame = CGRectMake(0, 0, 320, 322);

3) Добавьте свой AdBannerView непосредственно в окно приложения (помните, что это просто еще один UIView). Поэтому AdBanner будет располагаться над панелью инструментов, но под всеми видимыми контроллерами представления.

[window addSubview:addBannerView];

Это выглядит примерно так:

alt text

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