我正在尝试实现一个类似于对话框泡泡的可拉伸图像,但是我说得不对,
使用以下代码:
UIImage * ballon = [[UIImage imageNamed:@“strech.png”] resizableImageWithCapInsets:UIEdgeInsetsMake(12,11,12,9)];
我得到以下结果:
这是我原来的leftBubble.png
我可能做错了什么?
答案 0 :(得分:2)
整个图像不应该有渐变。这就是线路的来源。你的图像的中心(被拉伸的部分,需要是一个纯色,因为它不仅是水平的,而且是垂直的。
如果您只是水平拉伸图像,那么您的图像就可以正常工作了。
试试我为你制作的这张图片,并使用一些不同的capInsets:
UIImage *ballon = [[UIImage imageNamed:@"strech.png"]resizableImageWithCapInsets:UIEdgeInsetsMake(12, 20, 22, 12)];
请注意,我所有的造型都发生在气泡边缘,中心是实心的。
编辑:
这是图像的较小版本。我做了一个较大的,所以你可以看到我在做什么。
答案 1 :(得分:1)
我无法评论jhilgert00的答案,但我想添加一些内容:-[UIImage resizableImageWithCapInsets:]
tiles 内部像素,而不是拉伸,这就是梯度不起作用的原因,正如jhilgert00所说。
如果您使用的是iOS 6.0或更高版本,则可以使用-[UIImage resizableImageWithCapInsets:capInsets resizingMode:UIImageResizingModeStretch]
- (UIImage *)resizableImageWithCapInsets:(UIEdgeInsets)capInsets
[每个方向上没有被盖子覆盖的像素区域被平铺, 从左到右,从上到下,调整图像大小。
和
- (UIImage *)resizableImageWithCapInsets:(UIEdgeInsets)capInsets resizingMode:(UIImageResizingMode)resizingMode
如果您特别希望使用UIImageResizingModeStretch调整大小模式调整图像大小,则只应调用此方法来代替其对应方。