0

我有一张图片,我想用作 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 函数,图像将显示,但只有工具栏矩形坐标覆盖的图像部分。

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

有没有人有什么建议?

4

1 回答 1

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的第二个参数调用这个函数。

于 2013-08-13T16:02:41.940 回答