0

我在界面中有一些图像,里面有边框和一些背景。有点像这样:

图像示例

我想拉伸它们,保持边界完好无损。该resizableImageWithCapInsets方法似乎应该有效,但它平铺了图像的内部部分。这不是我想要的。我可以以某种方式使其拉伸图像的内部部分吗?

4

3 回答 3

5

使用方法:

- (UIImage *)resizableImageWithCapInsets:(UIEdgeInsets)capInsets resizingMode:(UIImageResizingMode)resizingMode

并通过resisizingMode UIImageResizingModeStretch

我相信他们在 WWDC 2012 会议之一中声明,如果内部区域为 1 像素宽或高,则系统假定它应该被拉伸,否则系统假定它应该平铺。但是,使用这个略有不同的 API,您可以选择指定是拉伸还是平铺。

资源

于 2013-08-23T13:45:05.073 回答
0

这应该可行,也许您将插图的值设置错误?

如果您设置错误的值,那么您可能会看到中心左侧部分的平铺:https ://developer.apple.com/library/ios/documentation/uikit/reference/UIImage_Class/Reference/Reference.html #//apple_ref/occ/instm/UIImage/resizableImageWithCapInsets

请记住,每个插图的值也必须至少为 1。

我们有没有机会看到您如何使用偏移量定义图像?

马特

于 2013-08-23T13:46:43.893 回答
0

您可以使用 UIImage 的 resizableImageWithCapInsets 方法

Example-->

Original Image

在此处输入图像描述

Output Image

在此处输入图像描述

UIImage *im = [[UIImage imageNamed:@"a.png"] resizableImageWithCapInsets:UIEdgeInsetsMake(0, 4, 0, 13)];
于 2013-08-23T13:57:40.773 回答