Translate

2013年3月14日 星期四

stretchableImageWithLeftCapWidth:topCapHeight:

為了要客制化UIAlertView上網查了很多別人已經寫好的程式碼
老是看到這個方法
stretchableImageWithLeftCapWidth:topCapHeight:
很好奇這到底是用來幹嘛的
原來這方法上網看了別人的解釋是這樣的
- (UIImage *)stretchableImageWithLeftCapWidth:(NSInteger)leftCapWidth topCapHeight:(NSInteger)topCapHeight

这个函数是UIImage的一个实例函数,它的功能是创建一个内容可拉伸,而边角不拉伸的图片,需要两个参数,第一个是不拉伸区域和左边框的宽度,第二个参数是不拉伸区域和上边框的宽度。

第一次用这个函数的时候一直搞不懂为什么只要两个参数就行,至少应该指定左上角和右下角,总共四个参数啊。后来读读文档才明白,只需要两个参数就行了。

参数的意义是,如果参数指定10,5。那么,图片左边10个像素,上边5个像素。不会被拉伸,x坐标为11和一个像素会被横向复制,y坐标为6的一个像素会被纵向复制。注意:只是对一个像素进行复制到一定宽度。

其实就是对一个图像做处理,只将中间需要放大的部分进行缩放,而四个角不做拉伸,四个边只做单方向上的拉伸。这种技术通常用于创建可变宽度按钮,包邮相同圆角,但其中心区域的放大和缩小的需要

用该函数设置UIButton的image时, 只对backgroundImage启作用

参数
leftCapWidth
要使用的值上限为左侧的宽度。指定0如果你不希望的形象是横向拉伸。
topCapHeight
要使用的值为顶盖的宽度。指定0如果你不希望的形象是垂直拉伸。

但是在iOS5.0以後就不能用這方法了囧
可以在iOS6.1也沒有報錯.我想應該還是可以繼續使用吧!

參考鏈結裡有更詳細的解釋我覺得很棒
stretchableImageWithLeftCapWidth:topCapHeight:函数用法

沒有留言:

張貼留言