ios ui開發過程中,經常會使用到導航欄,默認的樣式比較單一,所以經常需要修改導航欄的樣式
ios4:
- (void)drawRect:(CGRect)rect { UIImage *image = [UIImage imageNamed:@"navbar_bg.png"]; [image drawInRect:CGRectMake(0, 0, image.size.width, image.size.height)]; return;}ios5以后:
if ([self.navigationController.navigationBar respondsToSelector:@selector(setBackgroundImage:forBarMetrics:)])
{ [self.navigationController.navigationBar setBackgroundImage:[UIImage imageNamed:@"navbar_bg.png"] forBarMetrics:UIBarMetricsDefault];}
ios7,由于導航條會擴展到系統狀態欄上面,所以圖片高度需要增加20px,如果沒有另外處理可能會出現狀態欄黑條
if (7.0 <= [[[UIDevice currentDevice] systemVersion] floatValue]) { [self.navigationController.navigationBar setBackgroundImage:[UIImage imageNamed:@"navbar_bg_7.png"] forBarMetrics:UIBarMetricsDefault]; } else { [self.navigationController.navigationBar setBackgroundImage:[UIImage imageNamed:@"navbar_bg.png"] forBarMetrics:UIBarMetricsDefault]; }
新聞熱點
疑難解答