在開發(fā)過程中總會(huì)遇到背景圖片和控件大小一致的困擾规哲,通常就是兩種方法:
1、找美工切大小合適的圖片
2庐氮、通過使用代碼處理或可視化設(shè)置圖片拉伸
如何使用Slicing
Slicing功能要在.xcassets結(jié)尾的圖片資源管理器中才可以使用
1膘茎、通過以下Show Slicing按鈕和右邊欄Slicing屬性打開效果相同,點(diǎn)擊后可以看到有三種圖片拉伸方式:水平脚草、垂直赫悄、水平垂直方向;
Slicing 中有個(gè)Center屬性用來指定圖片的拉伸方式(Stretches馏慨、Tile)和可拉伸矩形范圍
2埂淮、根據(jù)需要選擇圖片拉伸方式,這里選擇十字圖標(biāo)或右側(cè)選擇 Horizontal And Vertical來演示效果写隶,如下圖藍(lán)色區(qū)域?yàn)榭衫靺^(qū)域 CGSizeMake(5, 5)
倔撞,綠色區(qū)域?yàn)椴豢衫靺^(qū)域 UIEdgeInsetsMake(8, 8, 8, 8)
,可以通過過拖拉虛線來改變它們的作用區(qū)域或右側(cè)屬性來修改
水平拉伸方式更直觀:
3樟澜、拉伸前圖片大小52*52误窖,通過設(shè)置后的效果
在可視化編程中設(shè)置UIImageView的Stretching為(0.5, 0.5, 0, 0)來處理拉伸
通過使用UIImage方法處理圖片拉伸
- (UIImage *)resizableImageWithCapInsets:(UIEdgeInsets)capInsets;
- (UIImage *)resizableImageWithCapInsets:(UIEdgeInsets)capInsets resizingMode:(UIImageResizingMode)resizingMode;
參數(shù)
capInsets:用來設(shè)置圖片的頂、左秩贰、底霹俺、右的端蓋高度
resizingMode:指定圖片的拉伸方式
UIImageResizingModeStretch:延伸模式,通過拉伸UIEdgeInsets指定的矩形區(qū)域來填充圖片圖片
UIImageResizingModeTile:平鋪模式毒费,通過復(fù)制顯示UIEdgeInsets指定的矩形區(qū)域來填充圖片
總結(jié)
Stretching屬性設(shè)置拉伸只對(duì)UIImageView有效丙唧,按鈕圖片拉伸需要使用其他兩種方式處理;
UIImage中方法處理圖片拉伸觅玻,適用于代碼設(shè)置想际;
Slicing功能最為方便有效培漏,推薦使用;