如何让UIImage只在特定的区域伸展?

var contentImageView: UIImageView!{ didSet{ contentImageView.image!.resizableImageWithCapInsets(UIEdgeInsets(top: 5,left: 5,bottom: 5,right: 5)) } } 

在互联网上search后,我试过这个代码。

但是没有奏效,结果是:

在这里输入图像说明

有没有更好的方法来实施?

在Xcode .xcassets中有一个圆滑的选项。 您可以select图像并从那里切片,以便它可以在特定的部分放大,只有下面的图像请探索此选项。 在这里输入图像说明 在这里输入图像说明 为了您的目的,只需选择中间选项(垂直和水平切片)聊天泡泡。

  1. 为了您的目的,只需select中间选项(垂直和水平切片)聊天泡泡。

切片后。

  1. 切片后。

顶部图像是与切片的图像。底部图像是没有切片的图像。

  1. 顶部图像是与切片的图像。 底部图像是没有切片的图像。

D借用Bhavin的形象:

你可以使用这个方法

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

capInsets是一个特定的区域(例如UIEdgeInsetsMake(10, 18, 10, 18) ), resizingMode应该selectUIImageResizingModeStretch

 UIImage *image = [[UIImage imageNamed:@"bubble.png"] resizableImageWithCapInsets:UIEdgeInsetsMake(10, 18, 10, 18) resizingMode:UIImageResizingModeStretch]; bubbleImageView.image = image;