设置UIToolBar背景图片

时间:2013-08-13 15:25:36

标签: ios ios5 uitoolbar

我有一个图像,我想在iOS 5+应用程序中用作UIToolBar的背景。背景图像根据对视图采取的操作而更改。图像大于UIToolBar,因此需要将图像调整为缩小而不是增加尺寸。

在对此处的其他问题进行审查以及对该问题的其他研究之后,建议的解决方案不起作用。建议如下:

UIImage *topimg = [[UIImage imageNamed:@"headerBar-Human.png"] resizableImageWithCapInsets:UIEdgeInsetsMake(0, 0, 0, 0)];
[_headerBar setBackgroundImage:topimg forToolbarPosition:UIToolbarPositionTop barMetrics:UIBarMetricsDefault];

我在UIEdgeInsetsMake调用中尝试了不同的值而没有运气。问题是图像根本没有显示。将显示默认的蓝色工具栏背景。

如果删除resizableImageWithCapInsets函数,图像将显示,但只有工具栏中的图像部分为rect坐标。

我还尝试创建UIImageView,添加图像并将其添加到工具栏,但结果是一样的。

有人有任何建议吗?

1 个答案:

答案 0 :(得分:1)

您可以使用此功能调整backgroundImage的大小:

- (UIImage *)imageWithImage:(UIImage *)image scaledToSize:(CGSize)newSize
{
    UIGraphicsBeginImageContextWithOptions(newSize, NO, 0.0);
    [image drawInRect:CGRectMake(0, 0, newSize.width, newSize.height)];
    UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
    return newImage;
}

我建议您使用_headerBar.frame.size作为第二个参数来调用此函数。