年底了昏兆,上頭提了個(gè)需求讓我蛋疼了2天:加載圖片時(shí)候要全屏顯示粉楚,但是高度不能超過屏幕寬度(最多顯示個(gè)正方形),同時(shí)亮垫,圖片截取是從最上方開始.
iOS當(dāng)中的 UIViewContentModeScaleAspectFill 屬性基本上是貼合的模软,唯一需要考慮的是怎么讓圖片的截取從最上方開始。
因?yàn)閳D片是加載在cell中的饮潦,走了點(diǎn)彎路燃异,重繪圖片再放回cell中會(huì)導(dǎo)致復(fù)用和內(nèi)存占用的問題,最后我開始尋找layer層的解決方式继蜡,只花了一小會(huì)就找到了解決辦法- -
CGFloat newHeight = DEF_SCREEN_WIDTH * imageHeight / imageWidth;
if (newHeight > DEF_SCREEN_WIDTH) {
myImageView.layer.contentsRect = CGRectMake(0, 0, 1, (float)(DEF_SCREEN_WIDTH / newHeight));
self.imageHeight.constant = DEF_SCREEN_WIDTH;
}else{
myImageView.layer.contentsRect = CGRectMake(0, 0, 1, 1);
self.imageHeight.constant = newHeight;
}
以上就可以妥妥的搞定了回俐。