iOS 图片拉伸

来源:互联网 发布:下载站系统源码 编辑:程序博客网 时间:2024/04/30 23:25
[objc] viewplaincopyprint?
  1. (UIImage *)resizableImageWithCapInsets:(UIEdgeInsets)capInsets NS_AVAILABLE_IOS(5_0); // create resizable version of this image. the interior is tiled when drawn.  
  2. (UIImage *)resizableImageWithCapInsets:(UIEdgeInsets)capInsets resizingMode:(UIImageResizingMode)resizingMode NS_AVAILABLE_IOS(6_0); // the interior is resized according to the resizingMode  
  3.   
  4. @property(nonatomic,readonlyUIEdgeInsets capInsets               NS_AVAILABLE_IOS(5_0);   // default is UIEdgeInsetsZero for non resizable images  
  5. @property(nonatomic,readonlyUIImageResizingMode resizingMode NS_AVAILABLE_IOS(6_0); // default is UIImageResizingModeTile  

[objc] viewplaincopyprint?
  1. resizableImageWithCapInsets  
这个方法比较好理解,后面的参数就是 设定一个矩形。范围就是 (上,左,下,右)

 

比如你的图片是120像素的圆角矩形,你想四个角不变,中间随意拉伸。假设每个角都可以用一个10*10的框框框起来。

那你可以使用 (10,10,10,10),在你的图片中画一个(距顶10,距左10,距底10,距右10)的矩形,表示该范围内拉伸。

但是,这个图片的使用就需要注意了,图片要使用1X大小的。

例子:

 

[objc] viewplaincopyprint?
  1.         //不能直接设定2倍  
  2. //        UIImage *image [UIImage imageNamed:@"image@2x"];  
  3. //        image [image resizableImageWithCapInsets:UIEdgeInsetsMake(10.0, 10.0, 10.0, 10.0)];  
  4.         //应使用单倍  
  5.         UIImage *image [UIImage imageNamed:@"image"];  
  6.         image [image resizableImageWithCapInsets:UIEdgeInsetsMake(10.010.010.010.0)];  
0 0