Objective c 调整大小的图像与CAPInsets:resizingMode:UIImageResizingModeTile isn';行不通

Objective c 调整大小的图像与CAPInsets:resizingMode:UIImageResizingModeTile isn';行不通,objective-c,image-resizing,Objective C,Image Resizing,UIImage的ResizeableImageWithCapinsets方法对于圆角的标准矩形按钮来说非常好,但我正在尝试创建一个看起来像云的按钮,边缘不均匀。我不知道如何画或创建它,也不知道当我把它放到我的应用程序中时如何拉伸它。我说的是这样的事情: 云层两侧的气泡不应拉伸,但无论按钮需要多长/短,都会创建新的气泡。例如,如果按钮的大小需要是此图像的一半,则只会显示其中的两个气泡,但如果按钮的大小需要更高,则会比此处的5个更高,它会根据需要添加和删除气泡。我设定了最小尺寸,这样至少有一个气泡

UIImage的
ResizeableImageWithCapinsets
方法对于圆角的标准矩形按钮来说非常好,但我正在尝试创建一个看起来像云的按钮,边缘不均匀。我不知道如何画或创建它,也不知道当我把它放到我的应用程序中时如何拉伸它。我说的是这样的事情:

云层两侧的气泡不应拉伸,但无论按钮需要多长/短,都会创建新的气泡。例如,如果按钮的大小需要是此图像的一半,则只会显示其中的两个气泡,但如果按钮的大小需要更高,则会比此处的5个更高,它会根据需要添加和删除气泡。我设定了最小尺寸,这样至少有一个气泡会一直存在,防止气泡太小时出现问题。如果需要,泡沫本身可以平铺

从软件开发或图形设计的角度来看,有人对我如何实现这样的效果有什么建议吗

编辑:

我试着用下面的图片和下面的代码来做这件事,它给出的结果和这里的图片一样。图像的大小甚至都不合适,更不用说平铺了。我已经验证了图像的边框也比这里显示的要大。这里真的很混乱

cappedCloud=[[UIImage ImageName:@“cloud.png”]调整大小的图像与capinsets:UIEdgeInsetsMake(9,9,9,9)resizingMode:UIImageResizingModele]

[[cell.cloudButton imageView] setContentMode: UIViewContentModeScaleToFill];
[cell.cloudButton setImage: cappedCloud forState: UIControlStateNormal];
[cell.cloudButton setAlpha: 0.85f];


您可能想了解如何使用

使用稍微修改过的代码版本,我可以在按钮上平铺图像,尽管平铺效果不太好:

UIImage* cappedCloud = [[UIImage imageNamed: @"cloud.png"] resizableImageWithCapInsets: UIEdgeInsetsMake(9, 9, 9, 9) resizingMode: UIImageResizingModeTile];

[cloudButton setBackgroundImage:cappedCloud forState:UIControlStateNormal];
[cloudButton setAlpha: 0.85f];

cloudImage.image = cappedCloud;

拉伸先在垂直方向进行,然后在水平方向进行(反之亦然)。因此,请提供顶部和底部偏移量,同时考虑不应拉伸的垂直方向和水平方向的左右偏移量。

看起来
UIImageResizingModeTile
仅在iOS6中可用。@lukech是这样的,在这种情况下,可能有人有一些关于如何在iOS6之前绘制平铺图像的代码,但是你的问题肯定是通过铺瓷砖而不是拉伸来解决的。你能更详细地谈谈我是如何做到这一点的吗?我只知道平铺只是拍摄整个图像并在给定区域重复,这不是我想在这里做的。文档中很少提到平铺选项。据我所知,iOS6之前没有内置的平铺大小调整选项,但请尝试搜索“iOS5中的平铺大小可调整图像”或任何您的目标操作系统版本,很抱歉,但这并没有真正回答我的问题。我想问你是否可以解释一下瓷砖是如何与帽子镶嵌结合使用的。它是在图像中间平铺,然后将封盖部分重新连接到外部,还是类似的东西?我几乎找不到其他这样的例子。如果这就是你看到的问题,那么你应用图像的方式一定有问题,你能提供你如何在UI元素上设置图像的代码吗?好了。
ScaleToFill
是我刚刚尝试的东西,没有任何区别:(好的,问题似乎是你正试图为一个按钮设置图像,我拍摄了你的图像并将其在imageview中平铺,研究如何正确调整按钮的大小。我提出了一个单独的问题和一个单独的项目,没有使用按钮,只是一个
UIImageView
,我也遇到了同样的问题。在这里:
UIImage* cappedCloud = [[UIImage imageNamed: @"cloud.png"] resizableImageWithCapInsets: UIEdgeInsetsMake(9, 9, 9, 9) resizingMode: UIImageResizingModeTile];

[cloudButton setBackgroundImage:cappedCloud forState:UIControlStateNormal];
[cloudButton setAlpha: 0.85f];

cloudImage.image = cappedCloud;