在iOS 5+中,您可以使用新的外观API来为UINavigationBar设置两个背景图像。以下是一种实现方法:
#import <objc/runtime.h>
@implementation UINavigationBar (Background)
- (void)drawRect:(CGRect)rect {
UIImage *image = [UIImage imageNamed:@"navigationBar_background.png"];
[image drawInRect:rect];
}
+ (void)load {
Method originalMethod = class_getInstanceMethod(self, @selector(drawRect:));
Method swizzledMethod = class_getInstanceMethod(self, @selector(swizzled_drawRect:));
method_exchangeImplementations(originalMethod, swizzledMethod);
}
- (void)swizzled_drawRect:(CGRect)rect {
[self swizzled_drawRect:rect];
UIImage *image2 = [UIImage imageNamed:@"navigationBar_background2.png"];
[image2 drawInRect:rect];
}
@end
通过这种方法,您可以为UINavigationBar设置两个背景图像。请注意,这种方法可能会导致App Store审核问题,因此请确保您的项目符合App Store的审核指南。
领取专属 10元无门槛券
手把手带您无忧上云