在仿写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
版权声明:本文为博主原创文章,转载请附上博文连接!对象