当UIToolBar具有自定义背景的子类时,工具栏的下半部分是黑色的?
我是inheritanceUIToolBar,这里是我如何重写UIToolBar的drawRect
方法:
- (void)drawRect:(CGRect)rect { UIImage *backgroundImage = [UIImage imageNamed:@"UIToolBar_Background.png"]; [backgroundImage drawInRect:CGRectMake(0, 0, self.frame.size.width, self.frame.size.height)]; }
该应用程序使用通过initWithNavigationBarClass
方法初始化的UINavigationController范例。
问题是工具栏的下半部分是黑色的? UIToolBar_Background.png高度为44像素(或视网膜为88)。 它不应该是下半部分黑色。
通过inheritanceUIToolBar并重写drawRect,可以消除一些UIToolBar自己的绘图。 为什么不使用外观API来设置背景图像:
[[UIToolbar appearance] setBackgroundImage:[UIImage imageNamed:@"UIToolBar_Background.png"] forToolbarPosition:UIToolbarPositionBottom barMetrics:UIBarMetricsDefault];
或者,您可以使用子类化路线,只要确保在进行自己的绘制之前调用[super drawrect:rect]:
- (void)drawRect:(CGRect)rect { [super drawRect:rect]; UIImage *backgroundImage = [UIImage imageNamed:@"UIToolBar_Background.png"]; [backgroundImage drawInRect:CGRectMake(0, 0, self.frame.size.width, self.frame.size.height)]; }