iOS图片拉伸之神属性:resizableImageWithCapInsets

 

在仿写QQ会话窗口的时候,气泡的背景图片拉伸问题。并非全部地方均可以拉伸的,因此定义了下面的工具类中的一个方法,专门拉伸图片。安全

UIImageResizingModeStrech:拉伸模式,经过拉伸UIEdgeInsets指定的矩形区域来填充图片
UIImageResizingModeTile:平铺模式,经过重复显示UIEdgeInsets指定的矩形区域来填充图片
+ (UIImage *)resizeWithImage:(UIImage *)image{
    CGFloat top = image.size.height/2.0;
    CGFloat left = image.size.width/2.0;
    CGFloat bottom = image.size.height/2.0;
    CGFloat right = image.size.width/2.0;
    return [image resizableImageWithCapInsets:UIEdgeInsetsMake(top, left, bottom, right)resizingMode:UIImageResizingModeStretch];
}


显示样式:工具

P.S.
resizableImageWithCapInsets有四个值上下左右.net

上下左右的值定义了受保护区域,能被拉伸的地方是中间区域,通常咱们都设成中心点为了安全。调试

详情调试实验请查看:
方法介绍和说明code

- (UIImage *)resizableImageWithCapInsets:(UIEdgeInsets)capInsets resizingMode:(UIImageResizingMode)resizingMode
//该方法返回的是UIImage类型的对象,即返回经该方法拉伸后的图像
//传入的第一个参数capInsets是UIEdgeInsets类型的数据,即原始图像要被保护的区域
//这个参数是一个结构体,定义以下
//typedef struct { CGFloat top, left , bottom, right ; } UIEdgeInsets;
//该参数的意思是被保护的区域到原始图像外轮廓的上部,左部,底部,右部的直线距离,参考图2.1
//传入的第二个参数resizingMode是UIImageResizingMode相似的数据,即图像拉伸时选用的拉伸模式,
//这个参数是一个枚举类型,有如下两种方式
//UIImageResizingModeTile,     平铺 
//UIImageResizingModeStretch,  拉伸
resizableImageWithCapInsets:方法的探析
--------------------- 
做者:BearsG 
来源:CSDN 
原文:https://blog.csdn.net/ws1352864983/article/details/73743290 
版权声明:本文为博主原创文章,转载请附上博文连接!对象

相关文章
相关标签/搜索