我想图像拉伸图像的某些部分。正好在图像的切口下方。但是当文字增加时它会拉伸整个图像。但我希望在此之后展开图像。link
balloonView.image =[[UIImage imageNamed:@"chatbg.png"] stretchableImageWithLeftCapWidth:50 topCapHeight:0];;
答案 0 :(得分:0)
一般性讨论:为了在Android中的UIImage
iOS
中创建可伸缩9Patches
,您可以使用此功能:
UIImage * backgroundImg = [UIImage imageNamed:@"bg.png"];
backgroundImg = [backgroundImg resizableImageWithCapInsets:UIEdgeInsetsMake(2,2, 2, 2)];
[imgView setImage:cellBackgroundImg];
你也可以使用:
- (UIImage *)stretchableImageWithLeftCapWidth:(NSInteger)leftCapWidth
topCapHeight:(NSInteger)topCapHeight
基本上图像没有在左边缘和右边缘的leftCapWidth像素区域和顶部和底部的topCapHeight像素中拉伸。缩放图像时,这些限制区域内的区域会受到拉伸。
OP的问题:我认为为什么你无法让它发挥作用是因为你的topCapHeight
设置为0
。尝试这样的事情:
[[UIImage imageNamed:@"chatbg.png"] stretchableImageWithLeftCapWidth:50
topCapHeight:50];
答案 1 :(得分:0)
如果leftCapWidth和topCapHeight都非零,则可伸缩图像分为9个部分。
leftCapWidth
<----->
+--------------+ ^
| | | | |
| A | | B | | topCapHeight
|-----+·+------| v
|-----+·+------|
| C | | D |
| | | |
+--------------+
中心部分的大小总是1像素,这是拉伸的部分,例如:
leftCapWidth (constant!)
<----->
+------------------+ ^
| | | | |
| A | | B | | topCapHeight (constant!)
v |-----+ - - +------| v
| | . . |
| | . . |
^ |-----+ - - +------|
| C | | D |
| | | |
+------------------+
>-----<
stretched region
只需使用此代码即可。如果您对左侧箭头仍有任何问题,请将LeftCapWidth的值更改为5,10,20,然后进行检查。
balloonView.image =[[UIImage imageNamed:@"chatbg.png"] stretchableImageWithLeftCapWidth:10 topCapHeight:20];
希望,这是你正在寻找的。任何关注都会回复给我。