ios的控件的AutoresizingMask屬性

setAutoresizingMask控件的自適應

    UIViewAutoresizingNone                 = 0,
    UIViewAutoresizingFlexibleLeftMargin   = 1 << 0,
    UIViewAutoresizingFlexibleWidth        = 1 << 1,
    UIViewAutoresizingFlexibleRightMargin  = 1 << 2,
    UIViewAutoresizingFlexibleTopMargin    = 1 << 3,
    UIViewAutoresizingFlexibleHeight       = 1 << 4,
    UIViewAutoresizingFlexibleBottomMargin = 1 << 5

UIViewAutoresizingNone

UILabel*    label = [[UILabel alloc] initWithFrame:CGRectMake(50, 100, 200, 40)];
 
[label setAutoresizingMask: UIViewAutoresizingNone];  控件相對於俯視圖座標值不變   

CGRectMake(50, 100, 200, 40)

UIViewAutoresizingFlexibleWidth:控件的寬度隨着父視圖的寬度按比例改變    例如

label寬度爲 100     屏幕的寬度爲320          當屏幕寬度爲480時      label寬度  變爲  100*480/320
同理  
UIViewAutoresizingFlexibleHeight相同

UIViewAutoresizingFlexibleLeftMargin  到屏幕左邊的距離隨着父視圖的寬度按比例改變  

例如    
CGRectMake(50, 100, 200, 40)];   
50     屏幕的寬度爲320          當屏幕寬度爲480時      label寬度  變爲  50*480/320
控件變爲    
CGRectMake(75, 100, 200, 40)];  

UIViewAutoresizingFlexibleRightMargin
UIViewAutoresizingFlexibleTopMargin
UIViewAutoresizingFlexibleBottomMargin


如果視圖的autoresizesSubviews屬性被設置爲 NO,則該視圖的直接子視圖的所有自動尺寸調整行爲將被忽略。類似地,如果一個子視圖的自動尺寸調整掩碼被設置爲 UIViewAutoresizingNone,則該子視圖的尺寸將不會被調整,因而其直接子視圖的尺寸也不會被調整。
請注意:爲了使自動尺寸調整的行爲正確,視圖的transform屬性必須設置爲恆等變換;其它變換下的尺寸自動調整行爲是未定義的。
自動尺寸調整行爲可以適合一些佈局的要求,但是如果您希望更多地控制視圖的佈局,可以在適當的視圖類中重載layoutSubviews方法。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章