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

时间:2015-08-05 03:46:55

标签: ios swift uiimage

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

我在互联网上搜索后尝试过这段代码。

但它没有奏效,结果是:

enter image description here

有没有更好的实施方法?

2 个答案:

答案 0 :(得分:10)

Xcode .xcassets中有一个光滑的选项。您可以选择图像并从那里对其进行切片,使其仅在下面的特定部分中呈现可伸缩的图像,请浏览此选项。 enter image description here enter image description here For your purpose just select the middle option (slice vertically and horizontally) for chat bubble.

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

    1. 切片后。
    2. Top Image is image with slicing. Bottom image is image without slicing.

      1. 顶部图像是带切片的图像。底部图像是没有的图像 切片。
      2. 借用Bhavin的图像进行演示:D

答案 1 :(得分:1)

您可以使用方法

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

capInsets是一个特定区域(例如UIEdgeInsetsMake(10, 18, 10, 18)),resizingMode应该选择UIImageResizingModeStretch

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