根據(jù)定義可以看出 UIViewContentMode 是UIView的屬性捻激,所以這里分別對(duì)UIImageView盒揉、UIView盗冷、UILabel宇植、UIButton設(shè)置contentMode屬性來查看相應(yīng)效果得封。
通過測(cè)試可以看到,contentMode屬性的設(shè)置指郁,在視覺上只對(duì)UIImageView起作用忙上,對(duì)UIView、UILabel闲坎、UIButton都不起作用疫粥。
對(duì)于UIView,因?yàn)樗淖右晥D都已經(jīng)設(shè)置了自己的frame箫柳,位置是固定的手形,所以這里contentMode不起作用。
對(duì)于UILabel悯恍、UIButton库糠,并沒有像預(yù)期的一樣,通過設(shè)置不同的contentMode涮毫,而改變UILabel瞬欧、UIButton中文本或圖片內(nèi)容的填充樣式。
所以罢防,對(duì)于contentMode屬性的主要探索就放在了UIImageView上艘虎。
先來看看測(cè)試過程中得到的所有效果圖:
typedef NS_ENUM(NSInteger, UIViewContentMode) {
//默認(rèn)樣式 圖片充滿整個(gè)輪廓,不按比例放大或縮小咒吐,圖片可能會(huì)變形
UIViewContentModeScaleToFill,
//圖片按比例放大或縮小野建,直到圖片和輪廓中相差比率較小的邊長(zhǎng)度達(dá)到一致,圖片可能會(huì)拉伸恬叹,但不會(huì)變形
UIViewContentModeScaleAspectFit,
//圖片按比例放大或縮小候生,直到圖片和輪廓中相差比率較大的邊長(zhǎng)度達(dá)到一致,圖片可能會(huì)拉伸绽昼,但不會(huì)變形
UIViewContentModeScaleAspectFill,
//調(diào)用setNeedsDisplay方法時(shí)唯鸭,會(huì)重新渲染圖片,以下操作硅确,圖片均不會(huì)被拉伸目溉,不變形
UIViewContentModeRedraw,
UIViewContentModeCenter,
UIViewContentModeTop,
UIViewContentModeBottom,
UIViewContentModeLeft,
UIViewContentModeRight,
UIViewContentModeTopLeft,
UIViewContentModeTopRight,
UIViewContentModeBottomLeft,
UIViewContentModeBottomRight,
};
歡迎各路大神不吝指教明肮、糾正~