苹果iphone图片拉伸的几种方法

悟途网 2013年06月06日 22:25 阅读()
字号 (A- A+)

系统至ios6之后,关于图片拉伸的方法已经扩展至3个函数:

1.ios4提供的方法:

- (UIImage *)stretchableImageWithLeftCapWidth:(NSInteger)leftCapWidth topCapHeight:(NSInteger)topCapHeight


这个函数是UIImage的一个实例函数,它的功能是创建一个内容可拉伸,而边角不拉伸的图片,需要两个参数,第一个是不拉伸区域距离左边框的宽度,第二个参数是不拉伸区域距离上边框的宽度,其操作本质是对一个像素的复制拉伸,故没有渐变效果,这也是其缺点所在。
参数的意义是,如果参数指定10,5。那么,图片左边10个点,上边5个点。不会被拉伸,x坐标为11的点会被横向复制,y坐标为6的点会被纵向复制。注意:只是对一个点像素进行复制到指定的宽度。
2.ios5提供的方法

- (UIImage *)resizableImageCapInsets:(UIEdgeInsets)Insets

其中Insets这个参数的格式是(top,left,bottom,right),从上、左、下、右分别在图片上画了一道线,这样就给一个图片指定了一个矩形区域。只有在框里面的部分才会被拉伸,而框外面的部分则保持改变。比如(20,5,10,5),意思是下图矩形里面的部分可以被拉伸,而其余部分不变。

 

3.ios6提供的方法:

- (UIImage *)resizableImageWithCapInsets:(UIEdgeInsets)capInsets resizingMode:(UIImageResizingMode)resizingMode

关于Insets参数,与ios5是相同的,不同的是其后增加了一个拉伸的模式,ios6.0的版本提供了

UIImageResizingModeTile和 UIImageResizingModeStretch两种模式,从名字就可以看出,是平铺模式和拉伸模式。平铺就是复制你Insets指定的矩形区域块来填充你所指定的图片区域,而拉伸就是通过拉伸你Insets指定的矩形区域块来填充你 所需的图片区域。我想,相较4.0的进步你也看出来了,是明显的吧,相较于以前的,图片的resize由一个点变成了一个矩形块,这样你的所指定块的渐变效果,也是可以呈现出来的。
只是,如果你需要兼容4.0的机器的话,那么还是需用老的函数来完成对图片的resize操作的。

热门文章
随机推荐
怎么在ios代码控制出现控件的阴影

怎么在ios代码控制出现控件

怎么在ios代码控制出现控件的阴影,只需要把对应的空...

苹果iPhone手机手电筒亮度调节教程

苹果iPhone手机手电筒亮度调

苹果在最新的iOS10系统中带来了不少改进,其中iPhone6...

iPhone6s有必要升级iOS11系统吗?iOS11好用吗?

iPhone6s有必要升级iOS11系统吗

iPhone6s升级iOS10.3.2好用吗?要不要升级iOS11呢?想必有很...

iPhone手机怎么设置一个回电提醒的方法

iPhone手机怎么设置一个回电

来电并不总是在适当的时候出现,如果你的iPhone在开会...

iPhone小圆点AssistiveTouch使用大全

iPhone小圆点AssistiveTouch使用

小圆点AssistiveTouch并不是随iPhone出生一起诞生的,直到...

防止孩子删除iPhone手机App应用的方法

防止孩子删除iPhone手机App应

随着iPhone的普及,经常可以看到玩iPhone手机的孩子。在...

iOS 9越狱后必备插件汇总

iOS 9越狱后必备插件汇总

iOS9必备插件有哪些?盘古大神iOS9完美越狱出来啦,越...

如何更快更好用iPhone6加速优化方法

如何更快更好用iPhone6加速优

怎样在不影响主体功能的前提下尽量提高iPhone6的性能呢...