图片的简单拉伸操作

王朝学院·作者佚名  2016-08-27
窄屏简体版  字體: 小  |  中  |  大  |  超大  

初始图片尺寸大小为 25 * 28 pixels

现在我们在根试图上创建两个button

UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];

button.frame = CGRectMake(50, 100, 25, 28);

[button setBackgroundImage:[UIImage imageNamed:@"btn.png"] forState:UIControlStateNormal];

[self.view addSubview:button];

UIButton *button1 = [UIButton buttonWithType:UIButtonTypeCustom];

button1.frame = CGRectMake(50, 200, 200, 28);

UIImage *image = [UIImage imageNamed:@"btn.png"];

[button1 setBackgroundImage:image forState:UIControlStateNormal];

[self.view addSubview:button1];

没做拉伸处理前图片效果

在iOS 5.0中,UIImage有一个新方法可以处理图片的拉伸问题

- (UIImage *)resizableImageWithCapInsets:(UIEdgeInsets)capInsets

CGFloat left = 12; // 左端宽度

CGFloat right = 12; // 右端宽度

UIEdgeInsets insets = UIEdgeInsetsMake(0, left, 0, right);

// 伸缩后重新赋值

UIImage *new = [image resizableImageWithCapInsets:insets];

[button1 setBackgroundImage:new forState:UIControlStateNormal];

[self.view addSubview:button1];

在iOS6.0中,UIImage又提供了一个方法处理图片拉伸

- (UIImage *)resizableImageWithCapInsets:(UIEdgeInsets)capInsets resizingMode:(UIImageResizingMode)resizingMode

对比iOS5.0中的方法,只多了一个UIImageResizingMode参数,用来指定拉伸的模式:

UIImageResizingModeStretch:拉伸模式,通过拉伸UIEdgeInsets指定的矩形区域来填充图片

UIImageResizingModeTile:平铺模式,通过重复显示UIEdgeInsets指定的矩形区域来填充图片

CGFloat left = 12; // 左端宽度

CGFloat right = 12; // 右端宽度

UIEdgeInsets insets = UIEdgeInsetsMake(0, left, 0, right);

// 伸缩后重新赋值

UIImage *new = [image resizableImageWithCapInsets:insets resizingMode:UIImageResizingModeStretch];

[button1 setBackgroundImage:new forState:UIControlStateNormal];

[self.view addSubview:button1];

下面是拉伸过的图片

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
© 2005- 王朝網路 版權所有 導航