2013-07-06 2 views
1

Есть ли способ использовать разные изображения для режима просмотра/портретного режима ipad? Моя панель навигации содержит логотип посередине, и пока он отлично работает на iphone с разными изображениями, я не могу использовать разные изображения для iPad, поэтому логотип не центрируется при включении устройства.Ipad NavigationBar Landscape Issue

В качестве альтернативы, я могу использовать обычное фоновое изображение и, возможно, заменить заголовок панели навигации изображением или центральной кнопкой, но я тоже не мог этого сделать. (У меня нет подкласса UINavigationController).

вот мой код, который делает трюк до сих пор внутри приложения делегат:

if ([UINavigationBar respondsToSelector:@selector(appearance)]) { 

     // Create resizable images for iphone 
     UIImage *navbarImage44 = [[UIImage imageNamed:@"nav_bar"] 
            resizableImageWithCapInsets:UIEdgeInsetsMake(0, 0, 0, 0)]; 

     UIImage *navbarImage32 = [[UIImage imageNamed:@"nav_bar_landscape"] 
            resizableImageWithCapInsets:UIEdgeInsetsMake(0, 0, 0, 0)]; 

     // Overide for iPad 
     // In theory navbar_bg_landscape~iPad should work 
     if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) { 
      //use iPad specific image extending last pixel for landscape mode 
      [[UINavigationBar appearance] setBackgroundImage:[[UIImage imageNamed:@"nav_bar_ipad" ] 
           resizableImageWithCapInsets:UIEdgeInsetsMake(0, 0, 0, 0)] 
               forBarMetrics:UIBarMetricsDefault]; 

     }else { 

      // Set the background image for *all* UINavigationBars 
      [[UINavigationBar appearance] setBackgroundImage:navbarImage44 
               forBarMetrics:UIBarMetricsDefault]; 

      // Never called on iPad, used for landscape on iPhone 
      [[UINavigationBar appearance] setBackgroundImage:navbarImage32 
               forBarMetrics:UIBarMetricsLandscapePhone]; 
     } 



    } 

ответ

1

я не получил никакого ответа на это, так что я нашел работу, вокруг которой, чтобы изменить размер изображения на ландшафте , На данный момент я в порядке. Я изменение размера моего фона изображения портрета - вот мой код для IPad

// Create resizable images 
       UIImage *ipadTabBarBG = [[UIImage imageNamed:@"nav_bar_ipad.png"] 
              resizableImageWithCapInsets:UIEdgeInsetsMake(0, -260, 0, 0)]; 

// Set the background image for *all* UINavigationBars 
      [[UINavigationBar appearance] setBackgroundImage:ipadTabBarBG 
               forBarMetrics:UIBarMetricsDefault];