背景图片拉伸

关于图片尺寸拉伸,我们在开发过程中,经常能遇到,比如:社交聊天,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图片 赋值

你可能感兴趣的:(背景图片拉伸)