我使用 Xcode 4.3.2 并基于“主从应用程序”模板创建一个空项目。当我尝试通过下面的代码更改默认导航栏的外观时,什么也没发生,drawRect 函数永远不会被调用。
#import "AppDelegate.h"
@implementation UINavigationBar (UINavigationBarCustomDraw)
- (void)drawRect:(CGRect)rect
{
NSLog(@"redraw");
[[UIImage imageNamed:@"NavBar.png"] drawInRect:rect];
self.topItem.titleView = [[UIView alloc] init];
self.tintColor = [UIColor colorWithRed:0.6745098 green:0.6745098 blue:0.6745098 alpha:1.0];
}
@end
@implementation AppDelegate
...
我知道在 iOS 5.x 中用户可以通过更简单的方式改变 UI 的外观,比如
[[UINavigationBar appearance] setBackgroundImage:img
forBarMetrics:UIBarMetricsDefault];
但我只是想知道为什么不调用drawRect,任何人都可以解释一下吗?