iOS如何实现类似安卓的.9图效果

如题:

大家应该都知道安卓经常用.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个像素被复制向下拉伸。

拉伸区域
拉伸区域

拉伸效果

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值