如何让 UIImage 只在特定区域拉伸?
How to let a UIImage only stretch in a specific area?
var contentImageView: UIImageView!{
didSet{
contentImageView.image!.resizableImageWithCapInsets(UIEdgeInsets(top: 5,left: 5,bottom: 5,right: 5))
}
}
我在网上搜索后试过这个代码。
但是没有成功,结果是:
有没有更好的实现方式?
可以使用方法
- (UIImage *)resizableImageWithCapInsets:(UIEdgeInsets)capInsets resizingMode:(UIImageResizingMode)resizingMode;
capInsets
是一个特定的区域(例如UIEdgeInsetsMake(10, 18, 10, 18)
),resizingMode
应该select UIImageResizingModeStretch
.
UIImage *image = [[UIImage imageNamed:@"bubble.png"] resizableImageWithCapInsets:UIEdgeInsetsMake(10, 18, 10, 18) resizingMode:UIImageResizingModeStretch];
bubbleImageView.image = image;
Xcode.xcassets 中有一个时尚的选项。您可以 select 图像并从那里对其进行切片,以便它可以在特定部分拉伸,下面是图像,请浏览此选项。
- 为了您的目的,只需 select 聊天气泡的中间选项(垂直和水平切片)。
- 切片后。
- Top Image 是经过切片的图像。底部图像是没有图像
切片。
借用 Bhavin 的图片进行演示:D
var contentImageView: UIImageView!{
didSet{
contentImageView.image!.resizableImageWithCapInsets(UIEdgeInsets(top: 5,left: 5,bottom: 5,right: 5))
}
}
我在网上搜索后试过这个代码。
但是没有成功,结果是:
有没有更好的实现方式?
可以使用方法
- (UIImage *)resizableImageWithCapInsets:(UIEdgeInsets)capInsets resizingMode:(UIImageResizingMode)resizingMode;
capInsets
是一个特定的区域(例如UIEdgeInsetsMake(10, 18, 10, 18)
),resizingMode
应该select UIImageResizingModeStretch
.
UIImage *image = [[UIImage imageNamed:@"bubble.png"] resizableImageWithCapInsets:UIEdgeInsetsMake(10, 18, 10, 18) resizingMode:UIImageResizingModeStretch];
bubbleImageView.image = image;
Xcode.xcassets 中有一个时尚的选项。您可以 select 图像并从那里对其进行切片,以便它可以在特定部分拉伸,下面是图像,请浏览此选项。
- 为了您的目的,只需 select 聊天气泡的中间选项(垂直和水平切片)。
- 切片后。
- Top Image 是经过切片的图像。底部图像是没有图像 切片。
借用 Bhavin 的图片进行演示:D