【问题标题】:resizableImage for UIImageView用于 UIImageView 的 resizableImage
【发布时间】:2013-03-22 07:53:19
【问题描述】:

我正在为 IOS 5.0 作为 minTarget 工作

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

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

这是代码

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

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

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

这是我正在尝试的图像

我刚刚又看了 resizeableImageWithCapInsets 的文档。它说它平铺了不在上限下的区域。我认为这是导致平铺图案的原因。有什么解决方法可以让我拥有 9Patch 样式的图像吗??

编辑

根据 Apple Docs
IOS 5.0 以下适用于我的要求。
[[UIImage imageNamed:@"textViewBg"] stretchableImageWithLeftCapWidth:6 topCapHeight:6]; (如 Dipen Panchasara 所述)

IOS6.0 及更高版本适用于我的需求。
- (UIImage *)resizableImageWithCapInsets:(UIEdgeInsets)capInsets resizingMode:(UIImageResizingMode)resizingMode

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

所以对于 IOS 5.0 到 IOS 6.0,我找不到任何能解决我要求的东西。

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

【问题讨论】:

    标签: ios ios5


    【解决方案1】:
    // Use following code to make stretchableBackground
    UIImage *bgImage = [[UIImage imageNamed:@"ImgViewBg"] stretchableImageWithLeftCapWidth:13 topCapHeight:13];
    [imgView setImage:bgImage];
    

    【讨论】:

    • 在ios5.0中贬值了
    【解决方案2】:

    ScaleToFill 将拉伸图像以填充整个图像视图。如果您不想拉伸图像并保持其纵横比,请使用 UIViewContentModeScaleAspectFit 或 UIViewContentModeScaleAspectFill。

    您可以找到有关这些常量here 的更多信息。

    【讨论】:

    • 我不担心纵横比。我想保留图像中的圆角。
    猜你喜欢
    • 1970-01-01
    • 2014-07-29
    • 2016-06-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多