自定义导航栏iOS 5兼容性
问题描述:
我试图用自定义导航栏实现项目;但是,以下代码:自定义导航栏iOS 5兼容性
@implementation UINavigationBar (CustomImage)
// Set the navigation bar background
- (void)drawRect:(CGRect)rect {
UIImage *image = [UIImage imageNamed:@"TopBar.png"];
[image drawInRect:CGRectMake(0, 0, self.frame.size.width, self.frame.size.height + 1)];
}
@end
不适用于iOS 5.我使用的是Xcode 4.2。
问题:如何实现自定义导航栏而不影响以上版本的代码的使用(< iOS 5)?
任何帮助,将不胜感激。 :)
答
我终于明白了......这可能会帮助其他人实现这一点。
@implementation UINavigationBar (CustomImage)
// Set the navigation bar background
- (UIImage *)barBackground{
UIImage *image = [UIImage imageNamed:@"TopBar.png"];
[image drawInRect:CGRectMake(0, 0, self.frame.size.width, self.frame.size.height + 1)];
return image;
}
- (void)didMoveToSuperview{
// Applies to iOS 5
if ([self respondsToSelector:@selector(setBackgroundImage:forBarMetrics:)])
{
[self setBackgroundImage:[self barBackground] forBarMetrics:UIBarMetricsDefault];
}
}
// This doesn't work on iOS5 but is needed for iOS4 and earlier
- (void)drawRect:(CGRect)rect
{
// Draw the image
[[self barBackground] drawInRect:rect];
}
@end