0

我是 UIToolBar 的子类,下面是我如何覆盖drawRectUIToolBar 的方法:

- (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)。它的下半部分不应该是黑色的。

4

1 回答 1

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)];
}
于 2013-04-25T13:28:51.073 回答