这里简单记录一下Scale9sprite的使用方法,其实使用这个方法主要是用来拉伸图片,好处就是该方法拉伸的程度不会像setScale方法这样严重扭曲变形。而是将一个纹理分为九个部分,也就是九宫格,上图:
将图片为9个部分,拉伸的情况下1,3,7,9 不会拉伸,2,8部分水平方向拉伸,4,6部分竖直方向拉伸,5两个方向都会拉伸,这样纹理就不会扭曲变形。
下面,贴出代码看一下九宫格怎么使用
注意:在为九宫格设置参数时候,一定要在原图的基础上,不要在contentSize上设置,这里踩了一下坑,因为这个精灵就是靠设置contentSize来拉伸的,自然不能在这个上面设置参数。
sprite = cc.Scale9Sprite:create("CommonShandow1.png") --1
sprite:setCapInsets(CCRectMake(0,0,571,26)) --2
sprite:setContentSize(cc.size(800, 60)) --3
1句用来创建这个精灵
2句用来设置“5”的大小,CCRectMake(0,0,571,26),0,0为“5”的左下角,571,26为“5”的宽、高
3句用来设置最终拉伸的状况
下面是明显的例子
self._frame = cc.Scale9Sprite:create("bg11_1.png")
self._frame:setCapInsets( CCRectMake(10, 10, 46, 34) );
self._frame:setContentSize(CCSizeMake(CELL_WIDTH,CELL_HEIGHT))
这个例子标明4个角的长宽都为10像素(ps:纹理大小为66*54)
参考文章:
http://yannickloriot.com/library/ios/cccontrolextension/Classes/CCScale9Sprite.html
http://blog.csdn.net/nynyvkhhiiii/article/details/12782249
https://blog.csdn.net/u011040361/article/details/48602847