我正在为UIToolBar创建子类,这是我如何覆盖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像素)。它应该没有它的下半部黑色。
答案 0 :(得分:0)
通过继承UIToolBar并覆盖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)];
}