ios - UIImageView 的可调整大小的图像

标签 ios ios5

我正在为 IOS 5.0 作为 minTarget 工作

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

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

这是代码

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

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

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

这是我正在尝试的图像 ImgViewBg

我刚刚又看了一遍 resizeableImageWithCapInsets 的文档。它说它会覆盖不在上限范围内的区域。我认为这就是造成平铺图案的原因。有什么解决方法可以让我拥有 9Patch 风格的图像吗?

编辑

根据苹果文档
最高 IOS 5.0 以下版本可满足我的要求。
[[UIImage imageNamed:@"textViewBg"]stretchableImageWithLeftCapWidth:6 topCapHeight:6]; (正如 Dipen Panchasara 所提到的)

IOS6.0 及更高版本可满足我的要求。
- (UIImage *)resizingImageWithCapInsets:(UIEdgeInsets)capInsets resizingMode:(UIImageResizingMode)resizingMode

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

因此,对于 IOS 5.0 到 IOS 6.0,我无法找到任何可以解决我的要求的内容。

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

最佳答案

// Use following code to make stretchableBackground
UIImage *bgImage = [[UIImage imageNamed:@"ImgViewBg"] stretchableImageWithLeftCapWidth:13 topCapHeight:13];
[imgView setImage:bgImage];

关于ios - UIImageView 的可调整大小的图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15565335/

相关文章:

javascript - 防止窗口在ios5移动浏览器中拖动

objective-c - 无法仅在 "ios 5.0"中在导航栏上设置图像

iphone - 如何在iPhone应用程序中定期补充游戏货币。

ios - setContentOffset 没有将表格滚动到最后一个单元格

iOS - 当蜂窝连接处于事件状态时,30 分钟后持续 wi-fi 超时

ios - 在选定的表格行上启用图像

ios - Xcode 中的 iPhone 模拟器是否支持低功耗蓝牙?

ios - 不明白如何在动态填充列表时正确使用数组

iOS 5.1 和 Default.png

ios - iOS 上的自定义搜索栏,看起来像普通的 textField