拉伸图片的4种方法

作者: CoderAO | 来源:发表于2015-06-11 20:28 被阅读1130次

为什么要拉伸图片呢? 有时候我们一个视图的大小是不固定的,它可能根据内容的不同展示不同的尺寸,但是希望图片可以只拉伸里面而保持四周不变.比如聊天的气泡:

聊天界面的气泡

这里给介绍4个拉伸图片的方法:

方法一:

resizableImageWithCapInsets: resizingMode:

  • 是UIImage实例调用的方法,返回拉伸后的image
  • capInsets参数表示图片上下左右分别要保护的宽度或者高度(保持不变的边距),没被保护的地方会进行拉伸
  • resizingMode表示拉伸的部位是以何种方式显示,有平铺和拉伸两种选择

方法二:

stretchableImageWithLeftCapWidth: topCapHeight:

  • 也是UIImage实例调用的方法,返回拉伸后的image
  • 两个个参数分别表示要左边和上边被保护起来(不会变形)的宽度和高度
  • 使用这个方法只会拉伸一个像素点,设置左边和上边的包括宽高后,右边和下边的保护宽高分别是:
    right = width - left - 1,
    bottom = height - top - 1,
    所以其实拉伸的只有中间一个像素点

方法三:

  • 3 在.xcassets文件里面对单独的图片进行设置
    找到:
    图片设置拉伸1

设置后变成:

图片设置拉伸2
只要选择了horizontal and Vertical,xcode就会自动算出应该保护的宽高,不用在代码里面做任何设置

补充一点: 如果图片有两种规格以上的图片(如:既有@1x图也有@2x图),那么所有规格的图片都需要这样设置一次.但其实如果要对图片进行拉伸使用,只要准备一张图片就够了.(20150731补充)

方法四: 给项目增加一个UIImage的分类

添加UIImage的分类其实和上面第一种方法是一样的,只是这里我们把它单独放在一个文件里面.
分类实现:

+ (UIImage *)resizableImageNamed:(NSString *)imageName {
    UIImage *image = [UIImage imageNamed:imageName];
    return [image stretchableImageWithLeftCapWidth:image.size.width / 2.0 topCapHeight:image.size.height / 2.0];
}

这样,在设置需要拉伸的图片的时候,只要使用

xxxImage = [UIImage resizableImageNamed:@"xxx"];

是不是用起来跟原生的一样?

相关文章

  • QHP_03图片拉伸

    图片拉伸的第一种方法 图片拉伸的第二种方法 图片拉伸的第三种方法(StoryBoard) 图片渲染自定义导航的时候...

  • 拉伸图片的4种方法

    为什么要拉伸图片呢? 有时候我们一个视图的大小是不固定的,它可能根据内容的不同展示不同的尺寸,但是希望图片可以只拉...

  • 图片拉伸共有三种方法

    图片拉伸共有三种方法: siwft 实现

  • 拉伸图片的4种方法(转)

    为什么要拉伸图片呢? 有时候我们一个视图的大小是不固定的,它可能根据内容的不同展示不同的尺寸,但是希望图片可以只拉...

  • 处理图片拉伸变形的三种方法

    UI给的图片入上图,如果按照如下的代码。 图片就会拉伸变形成入上图所示。有三种方法可以处理图片的拉伸变形问题。 第...

  • #UIButton#背景图片的拉伸

    如果不采用相应技术对button的背景图片进行拉伸,则显示的效果就会失真,效果: iOS中有三种方法对图片进行拉伸...

  • iOS -- 图片处理

    一、目录 1> 图片拉伸处理 2> 图片扩展名 3> 大图减小高度,图片拉伸处理 4> 点击大图,Modal出来,...

  • 关于图片拉伸的几种方法总结

    1.ios4提供的方法: - (UIImage *)stretchableImageWithLeftCapWidt...

  • swift4 图片拉伸

    这里以聊天界面气泡图为例设计给的气泡原图大小是这样的, 我们真正用到的是跟微信一样的,根据消息的长短自适应气泡的宽...

  • 背景图片拉伸效果的实现

    两种方法实现图片的拉伸效果 一.分类实现 为UIImage创建一个分类 HPImageStretch 调用示例如下...

网友评论

    本文标题:拉伸图片的4种方法

    本文链接:https://www.haomeiwen.com/subject/jbujqttx.html