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方法。
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方法。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.