1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > ios 按钮图片拉伸_#UIButton#背景图片的拉伸

ios 按钮图片拉伸_#UIButton#背景图片的拉伸

时间:2019-04-21 18:46:01

相关推荐

ios 按钮图片拉伸_#UIButton#背景图片的拉伸

如果不采用相应技术对button的背景图片进行拉伸,则显示的效果就会失真,效果:

Snip0823_7.png

iOS中有三种方法对图片进行拉伸

// 方法一:

- (void)viewDidLoad {

[super viewDidLoad];

// 0.创建一张图片

UIImage *image = [UIImage imageNamed:@"chat_send_nor"];

// 1.获取图片尺寸

CGFloat width = image.size.width;

CGFloat height = image.size.height;

// 2.拉伸图片

UIImage *resizableImage = [image resizableImageWithCapInsets:UIEdgeInsetsMake(height * 0.5, width * 0.5, height * 0.5 - 1, width * 0.5 - 1)];

// 3.把拉伸过的图片设置为button的背景图片

[self.buttonView setBackgroundImage:resizableImage forState:UIControlStateNormal];

}

// 方法二

- (void)viewDidLoad {

[super viewDidLoad];

// 0.创建一张图片

UIImage *image = [UIImage imageNamed:@"chat_send_nor"];

// 1.获取图片尺寸

CGFloat width = image.size.width;

CGFloat height = image.size.height;

// 2.拉伸图片

UIImage *resizableImage = [image stretchableImageWithLeftCapWidth:width * 0.5 topCapHeight:height * 0.5];

// 3.把拉伸过的图片设置为button的背景图片

[self.buttonView setBackgroundImage:resizableImage forState:UIControlStateNormal];

}

方法三

在storyboard中进行设置

Snip0823_8.png

Snip0823_9.png

Snip0823_12.png

注意:由于storyboard的图片拉伸往往不能处理一些特殊形状的图片,所以还需要用上面两种代码拉伸图片的方法

由于经常需要用到代码拉伸图片的功能,所以我们可以写一个分类,可以方便以后直接使用

构造一个类方法

Snip0823_13.png

#import "UIImage+LHLExtension.h"

@implementation UIImage (LHLExtension)

+ (instancetype)stretchableImageWithLocalName:(NSString *)imageName{

// 0.创建一张图片

UIImage *image = [UIImage imageNamed:imageName];

// 1.获取图片尺寸

CGFloat width = image.size.width;

CGFloat height = image.size.height;

// 2.拉伸图片

UIImage *resizableImage = [image stretchableImageWithLeftCapWidth:width * 0.5 topCapHeight:height * 0.5];

return resizableImage;

}

@end

然后在viewDidLoad中用分类中的方法

UIImage *image = [UIImage stretchableImageWithLocalName:@"chat_send_nor"];

[self.buttonView setBackgroundImage:image forState:UIControlStateNormal];

}

以上三种方式处理后的图片效果如下:

Snip0823_14.png

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。