IOS之autoresizingMask

IOS之autoresizingMask屬性詳解


在UIView中有一個屬性autoresizingMask,開發者可以利用這個屬性來設置當父View發生旋轉、伸縮等變化後子View在父View中的相對位置如何自動改變。

autoresizingMask是一個枚舉類型的值

enum {
   UIViewAutoresizingNone                 = 0,
   UIViewAutoresizingFlexibleLeftMargin   = 1 << 0,
   UIViewAutoresizingFlexibleWidth        = 1 << 1,
   UIViewAutoresizingFlexibleRightMargin  = 1 << 2,
   UIViewAutoresizingFlexibleTopMargin    = 1 << 3,
   UIViewAutoresizingFlexibleHeight       = 1 << 4,
   UIViewAutoresizingFlexibleBottomMargin = 1 << 5
};
typedef NSUInteger UIViewAutoresizing;


UIViewAutoresizingNone不做任何調整

UIViewAutoresizingFlexibleLeftMargin 自動調整與super view左邊的距離,右邊距離保持不變。

UIViewAutoresizingFlexibleWidth 子View的寬度自動縮放,高度不變。

UIViewAutoresizingFlexibleRightMargin 自動調整與super view右邊的距離,左邊距離保持不變。

UIViewAutoresizingFlexibleTopMargin 自動調整與super view頂部的距離,底部距離保持不變。

UIViewAutoresizingFlexibleHeight 子View的高度自動縮放,寬度不變。

UIViewAutoresizingFlexibleBottomMargin 自動調整與super view底部的距離,頂部距離保持不變。

如果有多個類型要同時選擇時可以用“|”分隔。

在Xib文件中我們經常能看到  。我們可以通過選擇這些紅線是實線還是虛線來達到上面設置屬性autoresizingMask的效果。外框的四個紅線從左邊開始順時針對應與UIViewAutoresizingFlexibleLeftMargin、UIViewAutoresizingFlexibleTopMargin、UIViewAutoresizingFlexibleRightMargin、UIViewAutoresizingFlexibleBottomMargin 。內框水平線對應於UIViewAutoresizingFlexibleWidth、垂直線對應於UIViewAutoresizingFlexibleHeight。


在UIView中還有一個屬性autoresizesSubviews,這個屬性是決定當前View是否允許子View通過設置autoresizingMask屬性來自動調整View。當autoresizesSubviews設置爲NO時,子View的autoresizingMask屬性也就失效了。




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章