在仿寫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
版權聲明:本文爲博主原創文章,轉載請附上博文連接!對象