【问题标题】:UIImage resizableImageWithCapInsets cap dataUIImage resizableImageWithCapInsets 上限数据
【发布时间】:2013-02-14 12:24:07
【问题描述】:

我之前使用过可拉伸图像,每次使用它们时,我都必须手动输入帽子插图,如果我弄错了,图像看起来就错了。

有没有办法将 cap 数据“植入”到某个文件中,然后可以与图像一起读取。

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

这样设计师就可以输入图片的大小,而无需我手动输入。

【问题讨论】:

    标签: ios objective-c uiimage resizable


    【解决方案1】:

    使用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 5 起已弃用。我知道如何使用它。在您的示例中,您手动输入了大写大小。这就是我试图避免的。所以设计师可以提供一个plist文件什么的。
    【解决方案2】:

    iOS 本身并不提供将可拉伸部分嵌入图像本身的机制。

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多