您的位置:首页 > 移动开发 > IOS开发

ios的控件的AutoresizingMask属性

2013-10-24 11:13 225 查看
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方法。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  ios