如题:
大家应该都知道安卓经常用.9图吧?而iOS却没有.9图这种东西。
其实iOS比安卓更牛逼,安卓需要找UI做个.9图,而很多刚入行的UI压根都不会做.9图。iOS只需要一行代码就能实现.9图的效果。这行代码就是:
- (UIImage *)stretchableImageWithLeftCapWidth:(NSInteger)leftCapWidth topCapHeight:(NSInteger)topCapHeight
这个是 UIImage 的类方法,作用是能创建一个内容区域可拉伸,而边角区域不拉伸的图片。
这个方法有两个形参:
- 第一个 leftCapWidth 是指左侧不拉伸的宽度;
- 第二个 topCapHeight 是指顶部不拉伸的高度;
拉伸原理:
- 复制第 leftCapWidth + 1 位置的竖排像素,水平方向向右侧区域粘贴,而 leftCapWidth + 2及其后面的像素不会被复制;
- 复制第 topCapHeight + 1 位置的横排像素,垂直方向向下侧区域粘贴,而 topCapHeight + 2及其下面的像素不会被复制;
示例:如果设置 leftCapWidth = 5;topCapHeight = 10; 那么图片左边的 5 个像素和顶部 10 个像素不拉伸,左侧第6个像素会被复制向右拉伸,顶部第11个像素被复制向下拉伸。