Xcode图像切片 - 拉伸图像的外部但保留中心区域

时间:2016-08-24 04:55:53

标签: ios xcode image slice

我想在Xcode中使用图像切片来生成一个可调整大小的图像,其中心区域保持静态。看起来这在Xcode中是不可能的,因为它只允许在每个方向上有一个拉伸区域和一个收缩区域。这是对的吗?

Resizable image

有没有人知道一个很好的解决方法呢?我需要将图像用于按钮,这样我就无法将UIImageViews排列在彼此之上,除非我通过触摸并且有点乱。

非常感谢。

1 个答案:

答案 0 :(得分:3)

由于iOS 5.0已弃用stretchableImageWithLeftCapWidth,您可以使用resizableImageWithCapInsets。检查Apple Documentation,它说明,

  

您可以使用此方法为图像添加上限,或更改图像的现有上限。在这两种情况下,您都会返回一个新图像,原始图像保持不变。例如,您可以使用此方法为具有边框和边角的按钮创建背景图像:调整按钮大小时,图像的边角保持不变,但图像的边框和中心会扩展以覆盖新的大小。

如果您想设置resizableImage(withCapInsets:resizingMode:)

,还可以使用另一种方法resizingMode 你可以做点什么,

    UIImage *image = [UIImage imageNamed:@"yourImageName"];

UIImage *streachedImage = [image resizableImageWithCapInsets:UIEdgeInsetsMake(5, 5, 5, 5)];  //Edgeinsect that you want

// OR

UIImage *streachedImage2 = [image resizableImageWithCapInsets:UIEdgeInsetsMake(5, 5, 5, 5) resizingMode:UIImageResizingModeStretch];

// OR

UIImage *streachedImage3 = [image resizableImageWithCapInsets:UIEdgeInsetsMake(5, 5, 5, 5) resizingMode:UIImageResizingModeTile];

查看Documentation了解详情。

更新:(根据评论)

您只需将backgroundImageimage都设置为按钮即可。您也可以设置image inset来管理image的职位。