2012-10-02 10 views
5

Hallo ich diesen Code bin mit dem Schattenbild meines navbar zu setzen:Darstellungsproxy - setShadowImage Alternative für iOS 5?

if ([self.navigationController.navigationBar respondsToSelector:@selector(shadowImage)]) { 

    [[UINavigationBar appearance] setShadowImage:[UIImage imageNamed:@"nav-bar-shadow"]]; 

    [[UIToolbar appearance] setShadowImage:[UIImage imageNamed:@"tool-bar-shadow"] forToolbarPosition:UIToolbarPositionAny]; 
} 

aber es diese iOS 6 nur scheint (obwohl ich nicht sicher sagen kann - ich nicht finden Dokumentation dies überall). Es funktioniert nicht auf iOS 5.

Gibt es eine Art von Alternative - global ein Bild unter der Navbar? Ich dachte an benutzerdefinierte UIView, aber wie dies global zu tun?

Antwort

1

Sie können:

  1. ein Subview Fügen Sie das Schattenbild auf Ihren viewController.view
  2. hinzufügen subview mit dem Schattenbild auf Ihre [[UIApplication sharedApplication] keyWindow] enthält, welche das Bild auf Ihrem Fenster global hinzufügen. Es kann jedoch ein wenig hässlich werden, z. wenn ein Modal View Controller angezeigt wird.
  3. können Sie UINavigationBar Unterklasse, etwas Magie mit Subviews dort tun und dann Navigation über [[UINavigationController alloc] initWithNavigationBarClass:[YourNavBarSubclass class] toolbarClass:[UIToolbar class]] initialisieren
0

ShadowImageTM ist iOS6 nur:

@property(nonatomic,retain) UIImage *shadowImage NS_AVAILABLE_IOS(6_0) UI_APPEARANCE_SELECTOR;