前言
以前項(xiàng)目中使用站位圖,每一個(gè)不同尺寸的UIImageView
或者 UIButton
都需要美工切兩張占位圖(@2x和@3x),會(huì)增加App的體積。本文主要講是如何使用一張圖片,適應(yīng)不同尺寸的容器。
只有一個(gè)方法就不繞圈子了
/**
傳入需要的占位圖尺寸 獲取占位圖
@param size 需要的站位圖尺寸
@return 占位圖
*/
+ (UIImage *)placeholderImageWithSize:(CGSize)size {
// 占位圖的背景色
UIColor *backgroundColor = [UIColor whiteColor];
// 中間LOGO圖片
UIImage *image = [UIImage imageNamed:@"placeholdimage"];
// 根據(jù)占位圖需要的尺寸 計(jì)算 中間LOGO的寬高
CGFloat logoWH = (size.width > size.height ? size.height : size.width) * 0.5;
CGSize logoSize = CGSizeMake(logoWH, logoWH);
// 打開(kāi)上下文
UIGraphicsBeginImageContextWithOptions(size,0, [UIScreen mainScreen].scale);
// 繪圖
[backgroundColor set];
UIRectFill(CGRectMake(0,0, size.width, size.height));
CGFloat imageX = (size.width / 2) - (logoSize.width / 2);
CGFloat imageY = (size.height / 2) - (logoSize.height / 2);
[image drawInRect:CGRectMake(imageX, imageY, logoSize.width, logoSize.height)];
UIImage *resImage =UIGraphicsGetImageFromCurrentImageContext();
// 關(guān)閉上下文
UIGraphicsEndImageContext();
return resImage;
}
下面上一張圖解釋一下方法中的內(nèi)容
占位圖.jpg
注意
一個(gè)項(xiàng)目使用一張占位圖雖然會(huì)少量的減少App的體積,但是對(duì)性能也會(huì)造成一定影響。這就需要根據(jù)自己的需求來(lái)選擇了。
以上觀點(diǎn)如果有錯(cuò)誤的地方, 希望能及時(shí)聯(lián)系我,我會(huì)立即更改,謝謝。