我们都知道在ios中,每一个UIImageView都有他的frame大小,但是如果图片的大小和这个frame的大小不符合的时候会怎么样呢?在默认情况,图片会被压缩或者拉伸以填满整个区域。

通过查看UIView的属性可以知道,view的contentMode属性可以用来控制图片的显示情况。下面的设置可以让图片进行居中显示。

imageView.contentMode =  UIViewContentModeCenter;

这个居中是包括了,横向和纵向都是居中。图片不会拉伸或者压缩,就是按照imageView的frame和图片的大小来居中显示的。

这里有两种情况:

1、图片比view的区域更大。这个时候会截取图片的中间部位显示在frame区域里面。

2、图片比view的区域更小。这个时候图片会完整的显示在frame的中间位置。

如果在默认情况,图片的多出来的部分还是会显示屏幕上。如果不希望超过frame的区域显示在屏幕上要设置。clipsToBounds属性。

    imageView.clipsToBounds  = YES;

最后一个问题,在iphone的retina屏幕上面,必须要设置,contentScaleFactor属性。这个属性的默认值是1。二对应的retina屏幕需要是2.可以通过下面的方式来设置:

    [imageView setContentScaleFactor:[[UIScreen mainScreen] scale]];

但是用:

    imageView.contentMode =  UIViewContentModeCenter;

也有他的问题,就是在图片不规则的时候,而且图片的宽或者高比frame的宽高更小的时候,会出现空白的情况。

为了解决这种问题可以设置:

    imageView.contentMode =  UIViewContentModeScaleAspectFill;

这样图片会拉伸或者压缩以适应frame的边界,而且是适应更小的边,这样可以达成的效果是,图片适应最小的边铺开显示,更大的边会超出frame,如果设置了clipsToBounds属性为YES,那么更大的边就会被截断。这样达成更好的居中显示效果,完整的代码如下:

    UIImage *pic = [ UIImage imageNamed:@"IMG_0404.PNG"];UIImageView *imageView   = [[UIImageView alloc] initWithFrame:CGRectMake(20, 20, 240, 100 )];[imageView setImage:pic];[imageView setContentScaleFactor:[[UIScreen mainScreen] scale]];imageView.contentMode =  UIViewContentModeScaleAspectFill;imageView.autoresizingMask = UIViewAutoresizingFlexibleHeight;imageView.clipsToBounds  = YES;

关于UIImageView的显示问题——居中显示或者截取图片的中间部分显示相关推荐

  1. blob二进制显示在html,使用Blob获取图片并二进制显示实例页面

    HTML代码: JS代码: var eleAppend = document.getElementById("forAppend"); window.URL = window.UR ...

  2. html插入图片出现红叉,网页图片显示红色叉怎么回事 网页图片有些不显示的有效解决方法...

    浏览各种网页是很多小伙伴们的日常,所以很多的网页知识都大概知道,当然也会遇到一些网页上的问题,比如说在浏览网页时图片全部不显示并且有红叉,相信大多数的朋友都会瞬间关闭然后打开另外一个页面,如果这张图片 ...

  3. ios 图片居中裁剪_iOS 根据UIImage 修改UIImageView Frame (包括截取图片中间部分)...

    iOS UIImageView 根据需求调整frame 1.图片的宽和高不相等,截取图片的中间部分,截取的部分Size明确 2.图片的宽度要等于其父视图的类的宽度,然后根据宽度计算高度,保证 图片不变 ...

  4. 图片播放器的实现1——利用Image2LCD提取图片数据并显示

    以下内容源于朱有鹏嵌入式课程的学习与整理,如有侵权请告知删除. 参考内容 (1)https://xiefor100.blog.csdn.net/article/details/71941527 (2) ...

  5. LayUI数据表格复选框显示不居中问题

    LayUI数据表格复选框显示不居中问题 样式(layui.css)文件中增加: .layui-table-cell .layui-form-checkbox[lay-skin="primar ...

  6. Markdown——图片、文字显示居中的一种方法

    Markdown--图片.文字显示居中的一种方法 一.方法 1.1 图片居中 1.2 文字居中 二.图片居中举例 2.1 编辑界面 2.2 显示界面 一.方法 1.1 图片居中 在图片下面的链接的最后 ...

  7. recycleview横向展开_android 横向recyclerView 数据居中,从中间往两边展开显示

    android 横向recyclerView 数据居中,从中间往两边展开显示 很多人的recyclerView都是自定义过后的recyclerView,所以我这里就不展示recyclerView了 横 ...

  8. autocad 如何摆正显示_CAD如何快速显示并居中图形

    在CAD的使用中,我们绘制好了图,但若不小心把图形移到了其他地方,使得图纸显示空白.那究竟该如何快速使得图形显示并居中呢? 下面小编给大家简单介绍显示并居中图形的方法 1.首先,大家打开中望CAD软件 ...

  9. css背景图片全屏显示加居中显示

    css背景图片全屏显示加居中显示,屏幕过大平铺 屏幕过小居中裁剪 div { background:url(/i/bg_flower.gif); background-size:cover; -moz ...

最新文章

  1. onSaveInstanceState与onRestoreInstance
  2. Ubuntu find命令详解
  3. Git 2.25.0 发布,新特性:部分 clone 与稀疏 checkout
  4. 基于visual Studio2013解决面试题之1007鸡蛋和篮子
  5. 除了修改WEBCONFIG会导致WEB服务重启外,还有其他的什么操作会导致重启?
  6. 手把手教你用杰奇建小说站
  7. 麦子学院6.1 神经网络算法(Nerual Networks)(上) 学习笔记
  8. 期末总结(持续更新)
  9. EL表达式和JSTL标签
  10. 【人脸姿态】2D人脸姿态估计的两种方式:solvePnP与3DMM参数
  11. python 公众号付费视频地址_Python下载微信公众号文章内的视频
  12. 行人重识别论文阅读9-ViTAA:自然语言搜索中文本属性的视觉对齐
  13. RTX3060安装pytorch
  14. 计算机主机和音箱的接口电路,Zigbee协议与USB主机无线音箱电路设计
  15. python中for ch in是什么意思_python中for是什么
  16. Apple MFi认证是什么意思?
  17. pythontrun什么意思_python新手笔记一
  18. 0016 c/c++语言 二进制转换为十进制
  19. Pycharm的安装并且连接已有的Python环境实现自由编译(附中文配置)|并通过Pycharm实现增加网站访问
  20. 安卓巴士自测试题——第七期

热门文章

  1. css 商城 两列_CSS 居中?来一探究竟
  2. 中专科学计算机应用基础试题及答案,职业中专《计算机应用基础》期中考试试卷...
  3. GeneXus笔记本—城市级联下拉
  4. 20172327 2017-2018-2 《程序设计与数据结构》第五周学习总结
  5. 【图像缩放】双立方(三次)卷积插值
  6. angular directive自定义指令
  7. python特性、属性以及私有化
  8. 用ASP创建MDaemon用户
  9. 模态对话框和非模态对话框的消息循环分析
  10. VS中的路径宏:OutDir、ProjectDir、SolutionDir等各种路径的说明