背景图片拉伸
2017-06-21 本文已影响94人
追逐_chase
关于图片尺寸拉伸,我们在开发过程中,经常能遇到,比如:社交聊天,cell圆角等,但是往往美工在给我们图片时的尺寸不是刚刚好的,这就需要用你技术的手段来解决这个问题。
UIImage中有几个方法可以解决
- 方法一
1> - (UIImage *)resizableImageWithCapInsets:(UIEdgeInsets)capInsets
//图片的尺寸
CGFloat imageW = image.size.width;
CGFloat imageH = image.size.height;
UIImage *resizableImage = [image resizableImageWithCapInsets:UIEdgeInsetsMake(imageH *0.5, imageW *0.5, imageH *0.5 - 1, imageW *0.5 - 1)];
- 方法二
2> - (UIImage *)resizableImageWithCapInsets:(UIEdgeInsets)capInsets resizingMode:(UIImageResizingMode)resizingMode
//衍生的方法
resizingMode是一个枚举类型:
1> UIImageResizingModeTile ,平铺模式,通过重复显示UIEdgeInsets指定的矩形区域来填充图片
2> UIImageResizingModeStretch,拉伸模式,通过拉伸UIEdgeInsets指定的矩形区域来填充图片
UIImage *resizableImage = [image resizableImageWithCapInsets:UIEdgeInsetsMake(imageH *0.5, imageW *0.5, imageH *0.5 - 1, imageW *0.5 - 1) resizingMode:UIImageResizingModeTile];
- 方法三
3> [image stretchableImageWithLeftCapWidth:<#(NSInteger)#> topCapHeight:<#(NSInteger)#>]
CGFloat imageW = image.size.width;
CGFloat imageH = image.size.height;
第一个参数:右边被保护的区域 = imageW - LeftCapWidth -1
达尔戈参数:底部被保护的区域 = imageH- topCapHeight - 1
[image stretchableImageWithLeftCapWidth:<#(NSInteger)#> topCapHeight:<#(NSInteger)#>]
然后把新返回的resizableImage图片 赋值