XZ_iOS之图片拉伸

有的时候美工给的一些图片太小并不符合我们的要求,出现拉伸问题,但是,如果再要一张大一些的图片,图片大,导致安装包也大,加载到内存的时候内存增大。
再举个例子,我们熟知的微信、QQ聊天的气泡,由于每次对话的文字数量不同,也需要对背景图片进行拉伸。
运行之后发现图片被拉伸的如下图所示:

仔细查看图片发现,好像只是边缘部分被拉伸了,中间的部分拉伸的并不明显。因此要想小图片被拉伸后不会变的难看,在图片拉伸的时候,我们不要拉伸边缘部分,只需拉伸中间的一块矩形区域即可。
iOS中,UIImage提供了两个方法处理图片拉伸问题
1>iOS 5.0之后,
- (UIImage*)resizableImageWithCapInsets:(UIEdgeInsets)capInsetsNS_AVAILABLE_IOS(5_0);// create a resizable version of this image. the interior is tiled when drawn.
2>iOS 6.0之后,
- (UIImage*)resizableImageWithCapInsets:(UIEdgeInsets)capInsets resizingMode:(UIImageResizingMode)resizingModeNS_AVAILABLE_IOS(6_0);// the interior is resized according to the resizingMode
UIImageResizingMode:通过重复显示UIEdgeInsets指定的矩形来填充图片
 UIImageResizingModeTile, // 平铺模式,
 UIImageResizingModeStretch, // 拉伸模式
使用方法:
CGFloattop = 10;
CGFloatbottom = 10;
CGFloatleft = 25;
CGFloatright = 25;
UIEdgeInsetsinsets = UIEdgeInsetsMake(top, bottom, left, right);
UIImageView*imgView = [[UIImageViewalloc]initWithFrame:CGRectMake(60,100,200,50)];
imgView.backgroundColor= [UIColorwhiteColor];
[self.viewaddSubview:imgView];
UIImage*img = [UIImageimageNamed:@"默认按钮灰"];
1>
img = [imgresizableImageWithCapInsets:insets];
2>
img = [imgresizableImageWithCapInsets:insetsresizingMode:UIImageResizingModeStretch];
imgView.image= img;
运行效果


图片原本的大小是20*20的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值