第一種:UIImageView *myImageView = [[ UIImageView alloc] initWithImage: [UIImage imageNamed: @”demo”]];?
用該方法可以顯示圖片原有大小。?
第二種方法: UIImageView *myImageView = [[UIImage alloc] initWithFrame: self.view.bounds]??
該方法會(huì)按指定大小顯示圖片,而不管圖片的原有大小讳侨,因而會(huì)造成圖片變形饶套。
代碼塊
UIImageView *myImageView =[[ UIImageView alloc] initWithImage: [UIImage imageNamed: @”demo”]];UIImageView *myImageView =[[UIImage alloc] initWithFrame: self.view.bounds];
在很多情況下戳杀,既需要按指定大小的范圍中放置圖片宁否,又不要造成圖片變形晌杰。解決該問(wèn)題可以設(shè)置UIImageView的contentMode屬性桂敛。contentMode為一個(gè)枚舉:
typedefNS_ENUM(NSInteger, UIViewContentMode){??
? ? ?UIViewContentModeScaleToFill,? ?
? ? ?UIViewContentModeScaleAspectFit,? ??
? ? ?UIViewContentModeScaleAspectFill,? ??
? ? ?UIViewContentModeRedraw,? ??
????UIViewContentModeCenter,? ??
????UIViewContentModeTop,? ??
????UIViewContentModeBottom,? ??
????UIViewContentModeLeft,? ??
????UIViewContentModeRight,? ??
????UIViewContentModeTopLeft,? ??
????UIViewContentModeTopRight,? ??
????UIViewContentModeBottomLeft,? ??
????UIViewContentModeBottomRight
};
其中最常用的三種模式是:
UIViewContentModeScaleFill: 會(huì)把圖片填充到圖片視圖中功炮;?
UIViewContentModeScaleAspectFit: 會(huì)使得圖片以原有的高寬比以適應(yīng)圖片視圖;?
UIViewContentModeScaleAspectFill: 首先要設(shè)置圖片視圖的clipsToBounds屬性為YES术唬,使圖片以原有高寬比填充整個(gè)圖片視圖薪伏,超出的部分會(huì)被剪輯掉;?
因此一般設(shè)置圖片視圖模式為UIViewContentModeScaleAspectFit粗仓。