我想在Xcode中使用图像切片来生成一个可调整大小的图像,其中心区域保持静态。看起来这在Xcode中是不可能的,因为它只允许在每个方向上有一个拉伸区域和一个收缩区域。这是对的吗?
有没有人知道一个很好的解决方法呢?我需要将图像用于按钮,这样我就无法将UIImageViews排列在彼此之上,除非我通过触摸并且有点乱。
非常感谢。
答案 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了解详情。
更新:(根据评论)
您只需将backgroundImage
和image
都设置为按钮即可。您也可以设置image inset
来管理image
的职位。