爲UINavigationBar設置自定義背景以支持iOS5和iOS4!
如你所知,直到iOS 5中出來的時候,我們用drawRect
覆蓋在AppDelegate
定製UINavigationBar
。 但是請知道,iOS 5爲我們提供了一些新的樣式設計方法(舊的方法不起作用)。
如何構建可在iOS 4和iOS 5上使用程式設計的應用程序UINavigationBar
?
你必須做到兩個!
在AppDelegate
使用此代碼:
@implementation UINavigationBar (UINavigationBarCategory)
- (void)drawRect:(CGRect)rect {
UIImage *img = [UIImage imageNamed:@"navbar.png"];
[img drawInRect:rect];
}
@end
,並在iOS5的viewDidLoad
方法(在你的視圖實現):
if ([self.navigationController.navigationBar respondsToSelector:@selector(setBackgroundImage:forBarMetrics:)]){
[self.navigationController.navigationBar setBackgroundImage:[UIImage imageNamed:@"navbar.png"] forBarMetrics:UIBarMetricsDefault];
}
如果你看到了,這裏我們問導航欄將respondToSelector到避免在iOS4上崩潰!