如何在iOS5之前执行[UIImage resizableImageWithCapInsets:]?

DTs*_*DTs 12 uiimage ios ios5

以下代码在指定的insets中平铺图像区域:

UIEdgeInsets imgInsets = UIEdgeInsetsMake(10.f, 5.f, 13.f, 44.f);
UIImage *image = [[UIImage imageNamed:@"fileName"] resizableImageWithCapInsets:imgInsets]; 
Run Code Online (Sandbox Code Playgroud)

但是,这仅适用于iOS5.如何在兼容iOS5之前获得相同的结果?

[UIImage stretchableImageWithLeftCapWidth: topCapHeight:]据我所知,它是不合适的,因为它假设可平铺区域是1px宽.换句话说,它不会平铺,它会拉伸.因此,它不适用于图案,仅适用于单色图像.这将在下面的屏幕截图中演示.

然后有[UIColor colorWithPatternImage:],但这假设整个图像需要平铺,它不允许必须保持上限的插图.

任何帮助表示感谢,谢谢.

.

在此输入图像描述

Mec*_*eer 2

我也一直在寻找解决这个问题的方法。此时我想我将respondsToSelector:@selector(resizableImageWithCapInsets:)在原始 UIImage 上使用来查看该方法是否可用。如果没有,则使用可拉伸图像。

我仍在寻找更好的解决方案,如果出现,我会更新答案。