UIImageView的图片居中问题
来源:互联网 发布:培训机构网站asp源码 编辑:程序博客网 时间:2024/05/08 13:23
我们都知道在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;
原文链接地址:http://www.ganlvji.com/?p=139
- UIImageView的图片居中问题
- UIImageView的图片居中问题
- UIImageView的图片居中问题
- UIImageView的图片居中问题
- 关于UIImageView的显示问题——居中显示或者截取图片的中间部分显示
- 关于UIImageView的显示问题——居中显示或者截取图片的中间部分显示
- 关于UIImageView的显示问题——居中显示或者截取图片的中间部分显示
- 关于UIImageView的显示问题——居中显示或者截取图片的中间部分显示
- 关于UIImageView的显示问题——居中显示或者截取图片的中间部分显示
- 关于UIImageView的显示问题——居中显示或者截取图片的中间部分显示
- UIImageView的图片切割问题
- ios 关于UIImageView的显示问题——居中显示或者截取图片的中间部分显示
- 关于UIImageView的显示问题——居中显示或者
- uiimageView 的图片拉伸问题的解决办法
- uiimageView 的图片拉伸问题的解决办法
- UIImageView无法显示图片的问题
- FLEX图片居中的问题
- 加载图片显示时的图片变形问题(UIImageView)
- STM32之SPI驱动液晶屏的一个问题
- 切面(aop)控制反转和依赖注入(IOC,DI)和spring的事务隔离和传播行为
- 获取语句指定部分
- linux网络协议栈分析笔记1-接入部分
- 各平台播放器以及浏览器的navigator.userAgent
- UIImageView的图片居中问题
- 将私钥拷贝到另一台mac 上,ssh 一台公钥认证的server 失败
- module_init 详解
- poj1191 dp
- Uva 10034 - Freckles
- apache反向代理和负载均衡总结
- mingw编译SDL_gfx库时遇到undefined reference to 'GFX_ALPHA_ADJUST_ARRAY'问题的解决方法
- C++中static的用法总结
- Eclipse java swing开发环境