UIImage *image = [UIImage imageNamed:@"chat_send_nor"];
// 1.2 拿到image的尺寸
CGFloat imageWidth = image.size.width;
CGFloat imageHeight = image.size.height;
###方式一
UIImage *resizableImage = [image resizableImageWithCapInsets:UIEdgeInsetsMake(imageHeight * 0.5, imageWidth * 0.5, imageHeight * 0.5 -1, imageWidth * 0.5 - 1) resizingMode:UIImageResizingModeTile];
[self.button setBackgroundImage:image forState:UIControlStateNormal];
###方式二
/*
右边需要保护的区域 = 图片的width - leftCapWidth - 1
底部需要保护的区域 = height - topCapHeight - 1
*/
UIImage *resizableImage = [image stretchableImageWithLeftCapWidth:imageWidth * 0.5 topCapHeight:imageHeight * 0.5];
[self.button setBackgroundImage:image forState:UIControlStateNormal];
方式三 在Assets.xcassets里面设置就可以
![](https://img.haomeiwen.com/i2406962/c25a9227e6aa88a7.png)
如果你非得用代码的话,我建议给UIImage添加一个分类
步骤如下
第一步:
![](https://img.haomeiwen.com/i2406962/d25d1794ee4a047a.png)
第二步:
![](https://img.haomeiwen.com/i2406962/52f82595e1f22877.png)
第三步:在.h文件提供一个方法出来
![](https://img.haomeiwen.com/i2406962/2fc07ea4c9ca26fc.png)
第四步:在.m文件中实现
![](https://img.haomeiwen.com/i2406962/c882e7b099df81a9.png)
使用方法:
导入头文件 类方法调用传递一张图片名字就OK
![](https://img.haomeiwen.com/i2406962/96b64b77249a3c57.png)
网友评论