官方解釋:A flag used to determine how a lays out its content when its bounds change.//當(dāng)一個(gè)view的bounds變化的時(shí)候用于決定其內(nèi)容怎么變化。
定義:
@property(nonatomic) UIViewCOntentMode contentMode
這一屬性通常用于實(shí)現(xiàn)可調(diào)整大小的控制邮屁,通常與contentStretch屬性一起使用拒垃。通過使用這一屬性來決定你擴(kuò)充的模式赁还,從而避免了之前每次都要重新對view的內(nèi)容進(jìn)行重畫牌里。
NOTE
你可以使用 setNeedsDisplay或者setNeedsDisplayInRect:方法來強(qiáng)制對一個(gè)view進(jìn)行重繪愉昆。
UIViewContentMode的默認(rèn)屬性是UIViewContentModeScaleToFill
typedef NS_ENUM(NSInteger, UIViewContentMode) {
UIViewContentModeScaleToFill,
UIViewContentModeScaleAspectFit, // contents scaled to fit with fixed aspect. remainder is transparent
UIViewContentModeScaleAspectFill, // contents scaled to fill with fixed aspect. some portion of content may be clipped.
UIViewContentModeRedraw, // redraw on bounds change (calls -setNeedsDisplay)
UIViewContentModeCenter, // contents remain same size. positioned adjusted.
UIViewContentModeTop,
UIViewContentModeBottom,
UIViewContentModeLeft,
UIViewContentModeRight,
UIViewContentModeTopLeft,
UIViewContentModeTopRight,
UIViewContentModeBottomLeft,
UIViewContentModeBottomRight,
};
其中主要分為:ScaleToFill,ScaleAspectFit,ScaleAspectFill三種泄隔。
- ScaleToFill為將圖片按照整個(gè)區(qū)域進(jìn)行拉伸(會(huì)破壞圖片的比例)
- ScaleAspectFit將圖片等比例拉伸敦姻,可能不會(huì)填充滿整個(gè)區(qū)域
- ScaleAspectFill將圖片等比例拉伸筛峭,會(huì)填充整個(gè)區(qū)域铐刘,但是會(huì)有一部分過大而超出整個(gè)區(qū)域。
至于Top,Left,Right等等就是將圖片在view中的位置進(jìn)行調(diào)整影晓。
通過圖片來進(jìn)行理解:
UIViewContentModeScaleToFill
UIViewContentModeScaleAspectFit
UIViewContentModeScaleAspectFill
UIViewContentModeRight
圖中橙色邊框是imageview的邊框镰吵,我們可以發(fā)現(xiàn)當(dāng)使用scaleaspectfill的時(shí)候圖片會(huì)超出邊框區(qū)域。
基本介紹如上挂签,具體代碼可見gitHub地址:ViewContentModeDemo.