iOS圖片拉伸之神屬性:resizableImageWithCapInsets

 

在仿寫QQ會話窗口的時候,氣泡的背景圖片拉伸問題。並非全部地方均可以拉伸的,因此定義了下面的工具類中的一個方法,專門拉伸圖片。安全

UIImageResizingModeStrech:拉伸模式,經過拉伸UIEdgeInsets指定的矩形區域來填充圖片
UIImageResizingModeTile:平鋪模式,經過重複顯示UIEdgeInsets指定的矩形區域來填充圖片
+ (UIImage *)resizeWithImage:(UIImage *)image{
    CGFloat top = image.size.height/2.0;
    CGFloat left = image.size.width/2.0;
    CGFloat bottom = image.size.height/2.0;
    CGFloat right = image.size.width/2.0;
    return [image resizableImageWithCapInsets:UIEdgeInsetsMake(top, left, bottom, right)resizingMode:UIImageResizingModeStretch];
}


顯示樣式:工具

P.S.
resizableImageWithCapInsets有四個值上下左右.net

上下左右的值定義了受保護區域,能被拉伸的地方是中間區域,通常咱們都設成中心點爲了安全。調試

詳情調試實驗請查看:
方法介紹和說明code

- (UIImage *)resizableImageWithCapInsets:(UIEdgeInsets)capInsets resizingMode:(UIImageResizingMode)resizingMode
//該方法返回的是UIImage類型的對象,即返回經該方法拉伸後的圖像
//傳入的第一個參數capInsets是UIEdgeInsets類型的數據,即原始圖像要被保護的區域
//這個參數是一個結構體,定義以下
//typedef struct { CGFloat top, left , bottom, right ; } UIEdgeInsets;
//該參數的意思是被保護的區域到原始圖像外輪廓的上部,左部,底部,右部的直線距離,參考圖2.1
//傳入的第二個參數resizingMode是UIImageResizingMode相似的數據,即圖像拉伸時選用的拉伸模式,
//這個參數是一個枚舉類型,有如下兩種方式
//UIImageResizingModeTile,     平鋪 
//UIImageResizingModeStretch,  拉伸
resizableImageWithCapInsets:方法的探析
--------------------- 
做者:BearsG 
來源:CSDN 
原文:https://blog.csdn.net/ws1352864983/article/details/73743290 
版權聲明:本文爲博主原創文章,轉載請附上博文連接!對象

相關文章
相關標籤/搜索