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方法。
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方法。
相关文章推荐
- 基本控件文档-UISwitch属性---iOS-Apple苹果官方文档翻译
- IOS 关于如何修改facebook内部封装好的控件属性(如何修改封装好的控件)
- IOS控件UIScrollView详解(基本方法、属性和delegate用法)
- iOS开发1:UITextField控件属性
- iOS开发中一些手写控件及其相关属性的使用
- [iOS基础控件 - 6.8] 各种数据类型的@property属性
- ios 开发的一些控件综合属性总结
- ios中各种控件属性总结
- iOS开发常用的控件属性和注意事项(持续更新)
- iOS 基础篇3—手写控件,frame,center和bounds属性
- IOS开发-常用UI控件的基本使用(Transform形变属性、frame属性、center属性的使用)
- ios UI控件引用用weak,UI控件代理属性必须用weak
- 基本控件文档-UITextField属性---iOS-Apple苹果官方文档翻译
- IOS(二)基本控件UIButton、简易动画、transform属性、UIImageView
- 学习IOS开问题篇--视图的模型控件属性写在私有分类中的原因
- iOS开发3:UITextField控件的属性
- iOS之旅--使用控件的属性frame、center、bounds
- iOS 使用 Runtime Attribute 为 IB 控件添加不能直接设置的属性
- 基本控件文档-UIView属性---iOS-Apple苹果官方文档翻译
- IOS控件学习:UILabel常用属性与用法