UIImage可伸缩图像,以生成消息类似气泡的结果

时间:2013-01-11 23:28:33

标签: ios uiimage

我正在尝试实现一个类似于对话框泡泡的可拉伸图像,但是我说得不对,

使用以下代码:

UIImage * ballon = [[UIImage imageNamed:@“strech.png”] resizableImageWithCapInsets:UIEdgeInsetsMake(12,11,12,9)];

我得到以下结果:

enter image description here 这是我原来的leftBubble.png

enter image description here

我可能做错了什么?

2 个答案:

答案 0 :(得分:2)

整个图像不应该有渐变。这就是线路的来源。你的图像的中心(被拉伸的部分,需要是一个纯色,因为它不仅是水平的,而且是垂直的。

如果您只是水平拉伸图像,那么您的图像就可以正常工作了。

试试我为你制作的这张图片,并使用一些不同的capInsets:

enter image description here

UIImage *ballon = [[UIImage imageNamed:@"strech.png"]resizableImageWithCapInsets:UIEdgeInsetsMake(12, 20, 22, 12)];

请注意,我所有的造型都发生在气泡边缘,中心是实心的。

编辑:

这是图像的较小版本。我做了一个较大的,所以你可以看到我在做什么。

enter image description here

答案 1 :(得分:1)

我无法评论jhilgert00的答案,但我想添加一些内容:-[UIImage resizableImageWithCapInsets:] tiles 内部像素,而不是拉伸,这就是梯度不起作用的原因,正如jhilgert00所说。

如果您使用的是iOS 6.0或更高版本,则可以使用-[UIImage resizableImageWithCapInsets:capInsets resizingMode:UIImageResizingModeStretch]

来自http://developer.apple.com/library/ios/#documentation/uikit/reference/UIImage_Class/Reference/Reference.html

  

- (UIImage *)resizableImageWithCapInsets:(UIEdgeInsets)capInsets

     

[每个方向上没有被盖子覆盖的像素区域被平铺,   从左到右,从上到下,调整图像大小。

  

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

     

如果您特别希望使用UIImageResizingModeStretch调整大小模式调整图像大小,则只应调用此方法来代替其对应方。