2010-05-13 2 views

ответ

2

Вы не можете.

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

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

+0

Спасибо за ответ. У меня также есть UITabbarController, я могу изменить размер по меньшей мере. Если да, то как это сделать? – Cathy

+0

UITabbarController следует тем же ограничениям. Если вы не создадите настраиваемый контроллер бара, вы можете указать только оттенок или прозрачность этих двух элементов управления. Это в основном для целей согласованности пользовательского интерфейса. –

+1

Вы не должны пытаться изменять стандартизованные элементы интерфейса. Это может смутить пользователя. Сокращение элемента затрудняет его использование. Я едва могу поразить некоторые элементы пользовательского интерфейса, как есть. Если вы считаете, что вам нужно уменьшить размер элементов пользовательского интерфейса, ваш дизайн пользовательского интерфейса, скорее всего, переполнен, и вам нужно переместить некоторые функции в другое представление. – TechZen

0

ВАЖНО: эта идея звучит великолепно в и, казалось, работали в теории, но структура ОВР не позволяет добавить AdBannerView непосредственно к UIWindow. < < < < <

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

Вот пример того, как сделать AdBanner ниже вашего UINavigationController, но над его нижней панелью инструментов. Этот AdBanner будет оставаться неподвижным, на ваш взгляд, он не будет анимироваться с помощью push и pop-действий 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

4

Вы можете изменить размер или переместить 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;

+0

Это фактически только изменяет кадр текущего вида (myview_view в вашем примере). Как только вы нажмете другое изображение, кадр будет сброшен на весь экран. – Moritz

Смежные вопросы