ios image 拉伸

ios image 拉伸

在开发中会遇到一些小纯色的图片,放入很大一张背景上(比较常见的场景为聊天对话的气泡随文字多少拉伸)自动扩展边缘会失真有锯齿。
使图片拉伸有两种方法。
1.纯代码方式
2.在Assets中对图片设置。
在讲解两种拉伸方式时,说说应该拉伸那部分。通常拉伸使其边缘正常应该使用中间部位做拉伸平铺,这就涉及到图片边缘保护,通常设置top为height/2,left:width/2,bottom:height/2-1,right:width/2-1,用中间1个单位设置拉伸。
几种实现方式如下

CGSize  size = image.size;
CGFloat height = size.height;
CGFloat width = size.width;
//第一种
image=[image resizableImageWithCapInsets:UIEdgeInsetsMake(height*0.5, width*0.5, height*0.5-1, width*0.5-1)];
    
    /*
     UIImageResizingModeTile = 0,平铺 通常使用该种方式
     UIImageResizingModeStretch = 1, 拉伸
     */
     //第二种
    [image resizableImageWithCapInsets:UIEdgeInsetsMake(height*0.5, width*0.5, height*0.5-1, width*0.5-1) resizingMode:UIImageResizingModeTile];
//    第三种;右边和底部会自动计算出保护-1的值
    //default is 0. if non-zero, horiz. stretchable. right cap is calculated as width - leftCapWidth - 1
    //右边需要保护的区域 = 图片width - leftCapWidth -1
    //default is 0. if non-zero, horiz. stretchable. right cap is calculated as width - topCapWidth - 1
    //底部需要首保护的区域 = 图片height - topCapWidth - 1
    [image stretchableImageWithLeftCapWidth:image.size.width*0.5 topCapHeight:image.size.height*0.5];

2 assets中对image设置方式
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值