最近看別人的代碼偶然看到了resizableImageWithCapInsets 指定保護區(qū)域拉伸圖片的方式做氣泡,特意了解下這個方法


實現(xiàn)代碼
- (UIImage *)resizableImageWithCapInsets:(UIEdgeInsets)capInsets resizingMode:(UIImageResizingMode)resizingMode
//該方法返回的是UIImage類型的對象,即返回經(jīng)該方法拉伸后的圖像
//傳入的第一個參數(shù)capInsets是UIEdgeInsets類型的數(shù)據(jù),即原始圖像要被保護的區(qū)域
//這個參數(shù)是一個結構體,定義如下
//typedef struct { CGFloat top, left , bottom, right ; } UIEdgeInsets;
//該參數(shù)的意思是被保護的區(qū)域到原始圖像外輪廓的上部,左部,底部,右部的直線距離,參考圖2.1
//傳入的第二個參數(shù)resizingMode是UIImageResizingMode類似的數(shù)據(jù),即圖像拉伸時選用的拉伸模式,
//這個參數(shù)是一個枚舉類型,有以下兩種方式
//UIImageResizingModeTile, 平鋪
//UIImageResizingModeStretch, 拉伸

看函數(shù)注解應該對這個函數(shù)有了一定的了解,這里貼幾個圖加深下理解。
示例:
UIImageResizingModeStretch
1.capInsets參數(shù)為UIEdgeInsetsMake(42, 0, 0, 0)

Paste_Image.png
2.capInsets參數(shù)為UIEdgeInsetsMake(42, 20, 42, 20)

Paste_Image.png