iOS之AutoresizingMask, autoresizesSubviews

来源:互联网 发布:ubuntu如何安装eclipse 编辑:程序博客网 时间:2024/05/18 02:08

在 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

0 0
原创粉丝点击