//类扩展
#import "UIImage+CMZExtention.h"
@implementation UIImage (CMZExtention)
+ (instancetype)resizableImgWithLocalImageName:(NSString *)localImgName
{
UIImage *image = [UIImage imageNamed:localImgName];
CGFloat imgWidth = image.size.width;
CGFloat imgHeight = image.size.height;
//方式一:
/** 返回一张受保护而且拉伸的图片 --->CapInsets:哪些地方要保护不被拉伸*/
UIImage *resizableImg = [image resizableImageWithCapInsets:UIEdgeInsetsMake(imgHeight *0.5, imgWidth * 0.5, imgHeight * 0.5 - 1, imgWidth * 0.5 - 1)];
//方式二:
/** 右边需要保护的区域 = 图片的宽度 - leftCapWidth - 1
* bottom cap = height - topCapHeight - 1
*/
UIImage *resizableImg = [image stretchableImageWithLeftCapWidth:imgWidth * 0.5 topCapHeight:imgHeight * 0.5];
return resizableImg;
}
调用:
UIImage *resizableImg = [UIImage resizableImgWithLocalImageName:@"chatMsgToBgNormal"];
[self.button setBackgroundImage:resizableImg forState:UIControlStateNormal];
方式三:
在 Assets.xcassets 里面,选中图片,点击 show the attributes inspector ,找到属性 Slicing ,设置要保护的地方。