0

我正在为 IOS 5.0 作为 minTarget 工作

我有一个 UIImageView ,我想为其分配一个可调整大小的图像,这样该图像就不会从角落拉伸。

我尝试将 UIImageView 的内容模式设置为 UIViewContentModeScaleToFill。但图像显示为平铺。

这是代码

UIImage *bgImage = [[UIImage imageNamed:@"ImgViewBg"] resizableImageWithCapInsets:UIEdgeInsetsMake(2, 2, 2, 2)];

imgView.contentMode = UIViewContentModeScaleToFill;
imgView.image = bgImage;

我正在寻找与 android 中的 9patch 图像相同的效果

这是我正在尝试的图像 图像视图Bg

我刚刚又看了 resizeableImageWithCapInsets 的文档。它说它平铺了不在帽下的区域。我认为这是导致平铺图案的原因。有什么解决方法可以让我拥有 9Patch 风格的图像吗?

编辑

根据 Apple Docs
upto IOS 5.0 以下适用于我的请求。
[[UIImage imageNamed:@"textViewBg"] stretchableImageWithLeftCapWidth:6 topCapHeight:6]; (如 Dipen Panchasara 所述)

IOS6.0 及更高版本适用于我的请求。
- (UIImage *)resizableImageWithCapInsets:(UIEdgeInsets)capInsets resizingMode:(UIImageResizingMode)resizingMode

IOS 5.0 及更高版本(我需要)
- (UIImage *)resizableImageWithCapInsets:(UIEdgeInsets)capInsets
上面的函数在我的情况下不起作用,因为它平铺的图像不在上限之下。

所以对于 IOS 5.0 到 IOS 6.0,我找不到任何可以解决我要求的东西。

现在我开始使用 Dipen Panchasara 解决方案,我希望它保持稳定

4

2 回答 2

1
// Use following code to make stretchableBackground
UIImage *bgImage = [[UIImage imageNamed:@"ImgViewBg"] stretchableImageWithLeftCapWidth:13 topCapHeight:13];
[imgView setImage:bgImage];
于 2013-03-22T08:31:49.910 回答
0

ScaleToFill 将拉伸图像以填充整个图像视图。如果您不想拉伸图像并保持其纵横比,请使用 UIViewContentModeScaleAspectFit 或 UIViewContentModeScaleAspectFill。

您可以在此处找到有关这些常量的更多信息。

于 2013-03-22T08:06:33.537 回答