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]; }