我以前使用过可拉伸的图像,每当我使用它们时,我都必须手动输入帽子插图,如果我弄错了,图像看起来就错了。
有没有办法将上限数据“植入”到某个文件中,然后可以与图像一起读取。
IE
UIImage *image = [UIImage loadResizableImageWithFile:"someFile"];
这样设计师就可以输入图片的大小,而不是我手动输入。
我以前使用过可拉伸的图像,每当我使用它们时,我都必须手动输入帽子插图,如果我弄错了,图像看起来就错了。
有没有办法将上限数据“植入”到某个文件中,然后可以与图像一起读取。
IE
UIImage *image = [UIImage loadResizableImageWithFile:"someFile"];
这样设计师就可以输入图片的大小,而不是我手动输入。
使用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)];
}
iOS 本身并不提供将可拉伸部分嵌入图像本身的机制。
我知道 android 通过在图像周围添加 1 像素边框并在该边框中使用黑色像素来指示可拉伸部分来做到这一点。
在此处快速搜索堆栈溢出会导致链接到 iOS 替代方案的答案:Tortuga22-NinePatch(Apache 许可)