iOSUIImageView处理图片大小问题

来源:互联网 发布:淘宝联盟收多少手续费 编辑:程序博客网 时间:2024/05/21 12:42

iOSUIImageView处理图片大小问题

第一种:UIImageView *myImageView = [[ UIImageView alloc] initWithImage: [UIImage imageNamed: @”demo”]];
用该方法可以显示图片原有大小。
第二种方法: UIImageView *myImageView = [[UIImage alloc] initWithFrame: self.view.bounds]
该方法会按指定大小显示图片,而不管图片的原有大小,因而会造成图片变形。


代码块

UIImageView *myImageView = [[ UIImageView alloc] initWithImage: [UIImage imageNamed: @”demo”]];UIImageView *myImageView = [[UIImage alloc] initWithFrame: self.view.bounds];

在很多情况下,既需要按指定大小的范围中放置图片,又不要造成图片变形。解决该问题可以设置UIImageView的contentMode属性。contentMode为一个枚举:

typedef NS_ENUM(NSInteger, UIViewContentMode){    UIViewContentModeScaleToFill,    UIViewContentModeScaleAspectFit,    UIViewContentModeScaleAspectFill,    UIViewContentModeRedraw,    UIViewContentModeCenter,    UIViewContentModeTop,    UIViewContentModeBottom,    UIViewContentModeLeft,    UIViewContentModeRight,    UIViewContentModeTopLeft,    UIViewContentModeTopRight,    UIViewContentModeBottomLeft,    UIViewContentModeBottomRight};

其中最常用的三种模式是:

UIViewContentModeScaleFill: 会把图片填充到图片视图中;

UIViewContentModeScaleAspectFit: 会使得图片以原有的高宽比以适应图片视图;

UIViewContentModeScaleAspectFill: 首先要设置图片视图的clipsToBounds属性为YES,使图片以原有高宽比填充整个图片视图,超出的部分会被剪辑掉;

因此一般设置图片视图模式为UIViewContentModeScaleAspectFit。


2 0
原创粉丝点击