UIImage resizableImageWithCapInsets上限数据

时间:2013-02-14 12:24:07

标签: ios objective-c uiimage resizable

我在使用它之前和之后都使用了可伸缩的图像我必须手动输入cap insets,如果我弄错了图像看起来不对。

有没有办法将上限数据“植入”某个文件,然后可以随图像一起阅读。

UIImage *image = [UIImage loadResizableImageWithFile:"someFile"];

这样设计师可以输入图像的大小,而不是我必须手动输入。

2 个答案:

答案 0 :(得分:0)

使用stretchableImageWithLeftCapWidth方法实现此目的。提供了示例代码。

CGSize imgSize = stretchableImage.size;
if ([stretchableImage respondsToSelector:@selector(stretchableImageWithLeftCapWidth:topCapHeight:)]) {
    stretchableImage = [stretchableImage stretchableImageWithLeftCapWidth:(imgSize.width/2.0) - 1 topCapHeight:(imgSize.height/2.0) - 1];
} else {
    stretchableImage = [stretchableImage resizableImageWithCapInsets:UIEdgeInsetsMake((imgSize.height/2.0) - 1, (imgSize.width/2.0) - 1, (imgSize.height/2.0) - 1, (imgSize.width/2.0) - 1)];
}

答案 1 :(得分:0)

iOS本身并不提供在图像中嵌入可伸缩部分的机制。

我知道android通过在图像周围添加1个像素边框并使用该边框中的黑色像素来指示可伸缩部分。

快速搜索堆栈溢出导致an answer链接到iOS替代方案:Tortuga22-NinePatch(Apache许可)