美文网首页
imageView 图片变形失真

imageView 图片变形失真

作者: 尤灬恋 | 来源:发表于2017-10-14 11:01 被阅读0次

在开发当中有时会有这样的需求,将从服务器端下载下来的图片添加到imageView上, 但是下载来的图片尺寸大小不固定,宽高也有可能不成比例, 如果我们直接显示,往往会发现图片被挤压,或者变形失真,如果你为了省事,你可以让你们的UI将图片处理一下,这样是能解决;但是如果这张图片是用户上传的头像, 这就要需要你来处理了。

比如这两张图片:

纵向图片.jpg 横向图片.jpg

我们直接添加到imageView上的结果是:

screen_1.png

这时我们会发现变形失真了。为了解决这一问题最简单的方法就是设置imageView的contentMode属性。因为imageView默认是填满整个容器,所以导致图片变形,影响美观。
首先contentMode的属性有:

typedef NS_ENUM(NSInteger, UIViewContentMode) {
//图片拉伸填充至整个UIImageView(图片可能会变形),这也是默认的属性,如果什么都不设置就是它在起作用
    UIViewContentModeScaleToFill,
//图片拉伸至完全显示在UIImageView里面为止(图片不会变形)
    UIViewContentModeScaleAspectFit,
//图片拉伸至图片的的宽度或者高度等于UIImageView的宽度或者高度为止.看图片的宽高哪一边最接近UIImageView的宽高,一个属性相等后另一个就停止拉伸.
    UIViewContentModeScaleAspectFill,
//调用setNeedsDisplay 方法时,就会重新渲染图片

//下面的属性都是不会拉伸图片的
    UIViewContentModeRedraw,
//中间模式
    UIViewContentModeCenter, 
//顶部
    UIViewContentModeTop,
//底部
    UIViewContentModeBottom,
//左边
    UIViewContentModeLeft,
//右边
    UIViewContentModeRight,
//左上
    UIViewContentModeTopLeft,
//右上
    UIViewContentModeTopRight,
//左下
    UIViewContentModeBottomLeft,
//右下
    UIViewContentModeBottomRight,
};

经过测试 UIViewContentModeScaleAspectFill 可以初步实现我们的需求

imageView_1.contentMode =UIViewContentModeScaleAspectFill;
imageView_2.contentMode =UIViewContentModeScaleAspectFill;

如图:

screen_2.png

此时发现,虽然图片没有变形,但是图片已经超出了我们imageView控件的大小,为了解决这一问题就需要在加上一句话:

imageView_1.clipsToBounds = YES; //超出容器范围的切除掉
imageView_2.clipsToBounds = YES;

如图:


screen_3.png

这是我们就解决了imageView显示图片变形失真的问题了。

相关文章

  • imageView 图片变形失真

    在开发当中有时会有这样的需求,将从服务器端下载下来的图片添加到imageView上, 但是下载来的图片尺寸大小不固...

  • 小记--1--iOS imageView从顶部开始显示图片

    关于imageView 过大的图片显示在较小imageView上面,并且不想让imageView上面的图片变形 (...

  • ImageView的setBackgroundResource(

    setBackgroundResource(): 会根据ImageView控件给定的长宽进行拉伸,图片会失真。这个...

  • 图片失真

    解决图片失真只需要两行代码: cell.imageView.contentMode = UIViewContent...

  • IOS App图片相关处理

    一、图片展示 展示图片 时候 固定 了imageView的大小 图片 也裁剪了 尽量保持比例 可是 还是失真 变...

  • iOS UIImageView的常见需求

    一、imageView图片不变形 1、通过设置属性 IOS UIImageView的contentMode属性 2...

  • iOS之开发技巧

    解决ImageView/Button变形 保证图片在不同比例手机上不会变形的方法; 分享一个写的不错的文章关于ui...

  • ios开发问题总结

    1、imageView的UIViewContentMode几种模式说明,根据具体内容选择相应的模式,保证图片不变形...

  • iOS 压缩图片不失真

    下面这个方法的确能压缩图片,但是图片会变形 因为是按照指定尺寸压缩,导致图片压缩之后模糊,失真 按照屏幕的尺寸压缩...

  • ImageView动态更改图片变形

    ImageView使用代码动态设置它的图片:ImageView.setBackgroundResource(R.m...

网友评论

      本文标题:imageView 图片变形失真

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