圖片拉伸邊角不變形方法:resizableImage

效果如下圖所示

圖片.png

一随闽、簡介

日常開發(fā)中,可能需要使用 圓角圖片 作為按鈕的背景圖威彰,不需要設(shè)置按鈕的圓角半徑出牧。但是當(dāng)按鈕的尺寸發(fā)生改變時,邊角也會被拉伸歇盼,如上圖
為了解決上述問題舔痕,可使用 UIImageresizableImageWithCapInsetsstretchableImageWithLeftCapWidth 兩種方法

- (UIImage *)resizableImageWithCapInsets:(UIEdgeInsets)capInsets resizingMode:(UIImageResizingMode)resizingMode NS_AVAILABLE_IOS(6_0); // the interior is resized according to the resizingMode

- (UIImage *)stretchableImageWithLeftCapWidth:(NSInteger)leftCapWidth topCapHeight:(NSInteger)topCapHeight __TVOS_PROHIBITED;

二、 resizableImageWithCapInsets

此方法是定義指定區(qū)域被拉伸豹缀,從 伯复、邢笙、 分別在圖片上畫一個矩形框啸如,范圍內(nèi)的區(qū)域被拉伸,外部保持不變

image = [image resizableImageWithCapInsets:UIEdgeInsetsMake(0,10,0,10) resizingMode:UIImageResizingModeStretch];

UIEdgeInsetsMake(0,10,0,10) : 表示上左下右邊距 10氮惯,不會被拉升叮雳,其余部分(被邊距劃出來的矩形區(qū)域)會被拉伸。 這里的 邊距 10一般表示圓角半徑
UIImageResizingModeStretch: 通過拉伸 UIEdgeInsets 指定的的矩形區(qū)域來填充圖片
UIImageResizingModeTile: 通過重復(fù)顯示 UIEdgeInsets 指定的矩形區(qū)域來填充圖片

三筐骇、stretchableImageWithLeftCapWidth

此方法是通過設(shè)置 左邊不拉伸區(qū)域?qū)挾?/code>和 上面不拉伸區(qū)域的高度 來達(dá)到邊角不拉伸的效果

NSUInteger leftCapWidth = image.size.width*0.5;
NSUInteger topCapHeight = 0;
image = [image stretchableImageWithLeftCapWidth:leftCapWidth
                                   topCapHeight:topCapHeight];

leftCapWidth:左邊不拉伸區(qū)域的寬度
topCapHeight:上面不拉伸區(qū)域的高度
擴(kuò)展:
rightCapWidth = 圖片寬度 - leftCapWidth - 1
bottomCapHeight = 圖片高度 - topCapHeight - 1
而拉伸區(qū)域 capInset 實(shí)際上是(topCapHeight,leftCapWidth,bottomCapHeight,rightCapWidth)
所以债鸡,一般 leftCapWidth 取 圖片寬度 的 一半江滨,topCapHeight 取圖片高度 的一半铛纬,來獲取拉伸區(qū)域 1*1的矩陣來 復(fù)制填充(UIImageResizingModeTile),保持外圍的區(qū)域不變

四唬滑、 封裝方法

為了使用方便告唆,將兩個方法簡單封裝了一下

// 拉伸圖片棺弊,可解決氣泡背景圖,圓角按鈕背景圖擒悬,修改尺寸邊角被拉伸變形的問題
+ (UIImage *)chx_resizableImage:(UIImage *)image {
    NSInteger leftCatpWidth = image.size.width * 0.5;
    NSInteger topCapHeight = image.size.height * 0.5;
    return [image stretchableImageWithLeftCapWidth:leftCatpWidth topCapHeight:topCapHeight];
}

// 指定 上模她、左、下懂牧、右 的區(qū)域拉伸圖片侈净,范圍外不拉伸
+ (UIImage *)chx_resizableImageWithCapInsets:(UIEdgeInsets)capInsets
                                       image:(UIImage *)image {
    return  [image resizableImageWithCapInsets:capInsets resizingMode:UIImageResizingModeStretch];
}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市僧凤,隨后出現(xiàn)的幾起案子畜侦,更是在濱河造成了極大的恐慌,老刑警劉巖躯保,帶你破解...
    沈念sama閱讀 206,378評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件旋膳,死亡現(xiàn)場離奇詭異,居然都是意外死亡途事,警方通過查閱死者的電腦和手機(jī)验懊,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,356評論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來尸变,“玉大人义图,你說我怎么就攤上這事≌倮茫” “怎么了歌溉?”我有些...
    開封第一講書人閱讀 152,702評論 0 342
  • 文/不壞的土叔 我叫張陵,是天一觀的道長骑晶。 經(jīng)常有香客問我痛垛,道長,這世上最難降的妖魔是什么桶蛔? 我笑而不...
    開封第一講書人閱讀 55,259評論 1 279
  • 正文 為了忘掉前任匙头,我火速辦了婚禮,結(jié)果婚禮上仔雷,老公的妹妹穿的比我還像新娘蹂析。我一直安慰自己,他們只是感情好碟婆,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,263評論 5 371
  • 文/花漫 我一把揭開白布电抚。 她就那樣靜靜地躺著,像睡著了一般竖共。 火紅的嫁衣襯著肌膚如雪蝙叛。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,036評論 1 285
  • 那天公给,我揣著相機(jī)與錄音借帘,去河邊找鬼蜘渣。 笑死,一個胖子當(dāng)著我的面吹牛肺然,可吹牛的內(nèi)容都是我干的蔫缸。 我是一名探鬼主播,決...
    沈念sama閱讀 38,349評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼际起,長吁一口氣:“原來是場噩夢啊……” “哼拾碌!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起街望,我...
    開封第一講書人閱讀 36,979評論 0 259
  • 序言:老撾萬榮一對情侶失蹤倦沧,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后它匕,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體展融,經(jīng)...
    沈念sama閱讀 43,469評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,938評論 2 323
  • 正文 我和宋清朗相戀三年豫柬,在試婚紗的時候發(fā)現(xiàn)自己被綠了告希。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,059評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡烧给,死狀恐怖燕偶,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情础嫡,我是刑警寧澤指么,帶...
    沈念sama閱讀 33,703評論 4 323
  • 正文 年R本政府宣布,位于F島的核電站榴鼎,受9級特大地震影響伯诬,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜巫财,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,257評論 3 307
  • 文/蒙蒙 一盗似、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧平项,春花似錦赫舒、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,262評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至扣讼,卻和暖如春缺猛,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評論 1 262
  • 我被黑心中介騙來泰國打工枯夜, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留弯汰,地道東北人艰山。 一個月前我還...
    沈念sama閱讀 45,501評論 2 354
  • 正文 我出身青樓湖雹,卻偏偏與公主長得像,于是被迫代替她去往敵國和親曙搬。 傳聞我的和親對象是個殘疾皇子摔吏,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,792評論 2 345

推薦閱讀更多精彩內(nèi)容

  • 縱觀移動市場,一款移動app纵装,要想長期在移動市場立足征讲,最起碼要包含以下幾個要素:實(shí)用的功能、極強(qiáng)的用戶體驗(yàn)橡娄、華麗簡...
    木馬不在轉(zhuǎn)閱讀 512評論 0 0
  • 蘋果為了節(jié)省打包文件(ipa)的存儲空間,在iOS5就推出了圖片拉伸,但是初衷是好的,如果程序猿不會用,那一切都是...
    coderYJ閱讀 3,887評論 1 11
  • 在項(xiàng)目中有的圖片需要拉伸處理(比如QQ聊天信息的Message Button背景圖片)诗箍,常用的有兩種方式: 一. ...
    陽關(guān)三疊閱讀 3,571評論 1 7
  • 今天我早上起來,媽媽叫我下去吃飯挽唉,我就說不吃滤祖,然后他們都吃完了,媽媽桌子擦了擦瓶籽,就去刷鍋了匠童。 刷好了...
    唐嘉茹閱讀 806評論 0 0
  • 前往工會幫員工爭取補(bǔ)助。 隨喜自己能夠得到這樣的機(jī)會去做幫助他人的事塑顺。 員工給我送飯卡汤求,隨喜自己能夠給她服務(wù)他人的...
    我不叫許仲斌閱讀 170評論 0 1