在iOS的實際開發中,如果我們把一張有圖片(有特別形狀的,特別是類似有圓角的圖片)放在UIButton中,當UIButton改變大小是,圖片可能會被展開並且產生變形,我們可以通過-(UIImage *)resizableImageWithCapInsets:resizingMode:方法(通過UIImage對象調用該方法,並且傳入要展開的圖片的名字作為參數)實現返回一個可展開不變形的圖片,這裡我們把這個方法寫到UIImage類的分類中把它封裝起來,日後的iOS開發中我們可以直接拿來使用:
UIImage+Extension.h
#import <UIKit/UIKit.h>@interface UIImage (Extension)/** * 傳入圖片的名稱,返回一張可展開不變形的圖片 * * @param imageName 圖片名稱 * * @return 可展開圖片 */+ (UIImage *)resizableImageWithName:(NSString *)imageName;@end
UIImage+Extension.m
#import "UIImage+Extension.h"@implementation UIImage (Extension)+ (UIImage *)resizableImageWithName:(NSString *)imageName{ // 載入原有圖片 UIImage *norImage = [UIImage imageNamed:imageName]; // 擷取原有圖片的寬高的一半 CGFloat w = norImage.size.width * 0.5; CGFloat h = norImage.size.height * 0.5; // 產生可以展開指定位置的圖片 UIImage *newImage = [norImage resizableImageWithCapInsets:UIEdgeInsetsMake(h, w, h, w) resizingMode:UIImageResizingModeStretch]; return newImage;}@end
以上就是本文的全部內容,希望能給大家一個參考,也希望大家多多支援雲棲社區。