图片拉伸方法

除了了上一篇介绍的

- (UIImage *)stretchableImageWithLeftCapWidth:(NSInteger)leftCapWidth topCapHeight:(NSInteger)topCapHeight;现在又总结了2个方法。现在介绍另外2种方法。


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

- (UIImage *)resizableImageWithCapInsets:(UIEdgeInsets)capInsetsNS_AVAILABLE_IOS(5_0);// create a resizable version of this image. the interior is tiled when drawn.

这个方法只接收一个UIEdgeInsets类型的参数,可以通过设置UIEdgeInsets的left、right、top、bottom来分别指定左端盖宽度、右端盖宽度、顶端盖高度、底端盖高度。按照逆时针方向记忆。

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

- (UIImage *)resizableImageWithCapInsets:(UIEdgeInsets)capInsets resizingMode:(UIImageResizingMode)resizingModeNS_AVAILABLE_IOS(6_0);// the interior is resized according to the resizingMode

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

  • UIImageResizingModeStretch:拉伸模式,通过拉伸UIEdgeInsets指定的矩形区域来填充图片
  • UIImageResizingModeTile:平铺模式,通过重复显示UIEdgeInsets指定的矩形区域来填充图片
代码如下:

UIImageView *m_imageView = [[UIImageViewalloc]initWithFrame:CGRectMake(0,0, 240,110)];

//[m_imageView setImage:[[UIImage imageNamed:@"2.png"] stretchableImageWithLeftCapWidth:40 topCapHeight:10]];

[m_imageView setImage:[[UIImageimageNamed:@"1.png"]resizableImageWithCapInsets:UIEdgeInsetsMake(30,30, 30,30)]];

[m_imageView setImage:[[UIImageimageNamed:@"1.png"]resizableImageWithCapInsets:UIEdgeInsetsMake(30,30, 30,30) resizingMode:UIImageResizingModeStretch]];

[self.view addSubview:m_imageView];

[m_imageView release];

如果想要兼容5.0之前的设备就要使用第一种方法。后面两种方法适用区域拉伸。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值