2013-01-11 28 views
0

我试图实现类似的对话泡泡的strechable图像。然而我​​没有用下面的代码得到它的权利,的UIImage strechable图像生成消息气泡状的结果

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

我得到以下结果:

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

enter image description here

我该怎么办可能是做错了什么?

回答

1

我不能jhilgert00的回答发表评论,但我想补充一点:-[UIImage resizableImageWithCapInsets:]瓷砖内的像素,而不是拉伸,这就是为什么梯度不起作用,正如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调整大小模式调整图像大小。

2

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

如果你只是横向拉伸图像,你的图像miay已经工作。就好

试试这个图片我为你做的,并使用一些不同的capInsets:

enter image description here

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

通知我所有的造型发生在泡沫的边缘,中心我坚实。

编辑:

这是图像的缩图版本。我制作了更大的一个,这样你就可以看到我在做什么。

enter image description here

+0

太棒了!非常感谢! – perrohunter