ios的AutoresizingMask


鏈接地址:http://hi.baidu.com/friendofsnowandsea/blog/item/6ee1f5d8a37d01f639012fdf.html

 

在 UIView 中有一個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就是自動調整與superView左邊的距離,也就是說,與superView右邊的距離不變。

UIViewAutoresizingFlexibleRightMargin就是自動調整與superView的右邊距離,也就是說,與superView左邊的距離不變。

UIViewAutoresizingFlexibleTopMargin 

UIViewAutoresizingFlexibleBottomMargin

UIViewAutoresizingFlexibleWidth

UIViewAutoresizingFlexibleHeight

以上就不多解釋了,參照上面的。

也可以多個枚舉同時設置。如下:

subView.autoresizingMask = UIViewAutoresizingFlexibleLeftMargin  |UIViewAutoresizingFlexibleRightMargin;

如果有多個,就用“|”關聯。

還有一個屬性就是autoresizesSubviews,此屬性的意思就是,是否可以讓其subviews自動進行調整,默認狀態是YES,就是允許,如果設置成NO,那么subView的autoresizingMask屬性失效。

 

關於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 allocinitWithFrame:CGRectMake(5010020040)];

 

[label setAutoresizingMask: UIViewAutoresizingNone];  控件相對於俯視圖坐標值不變   

 

CGRectMake(5010020040)

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

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


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

例如    
CGRectMake(5010020040)];   
50     屏幕的寬度為320          當屏幕寬度為480時      label寬度  變為  50*480/320
控件變為    
CGRectMake(75, 10020040)];  

UIViewAutoresizingFlexibleRightMargin
UIViewAutoresizingFlexibleTopMargin
UIViewAutoresizingFlexibleBottomMargin


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM