一丶 Autoresizing
1.1 摘要: 苹果在iOS2中引入了Autoresizing技术用于屏幕适配, 用于在其父视图的bounds发生改变时如何自动调整如何调整自身布局(大小)
1.2 使用:
-
⚠️ Autoreszing 与 Auto Layout 二者不能共存,Xcode中默认开启了Autolayout技术, 在使用Autoresizing技术前需要手动将其关闭
关闭Auto Layout.png - autoresizingMask属性: autoresizingMask属性的设置由六根线标识, 其中位于外部的四根线分别用于标识用于父视图的bounds发生改变时自动调整与父视图的上、下、左、右边距; 位于内部的两根线分别用于标识如何自动调整自身的宽度和高度
- 默认autoresizingMask标识的情况下 autoresizingMask属性.png 默认autoresizingMask标识.jpg
- 设置autoresizingMask距离父视图的右边与底部的标识 距离父视图的右边与底部的标识.png 效果图
-
设置autoresizingMask自动调整自身的宽度和高度
距离父视图的右边与底部的标识.png
自动调整自身的宽度和高度效果图.png -
代码实现
/*
UIViewAutoresizingNone = 0, //不会根据父控件的改变而进行改变
UIViewAutoresizingFlexibleLeftMargin = 1 << 0, 自动调整距离父控件左边边距(也就是距离右边边距是固定的)
UIViewAutoresizingFlexibleWidth = 1 << 1, 自动调整宽度根据父控件的宽度发生变化而变化
UIViewAutoresizingFlexibleRightMargin = 1 << 2, 自动调整距离父控件u右边边距
UIViewAutoresizingFlexibleTopMargin = 1 << 3, 自动调整距离父控件顶部边距
UIViewAutoresizingFlexibleHeight = 1 << 4, 自动调整高度根据父控件的高度发生变化而变化
UIViewAutoresizingFlexibleBottomMargin = 1 << 5 自动调整距离父控件底部边距
*/
CGFloat H = [UIScreen mainScreen].bounds.size.height;
CGFloat W = [UIScreen mainScreen].bounds.size.width;
UIView *blueView = [[UIView alloc] initWithFrame:CGRectMake(W-100, H-100, 100, 100)];
blueView.backgroundColor = [UIColor blueColor];
blueView.autoresizingMask = UIViewAutoresizingFlexibleTopMargin | UIViewAutoresizingFlexibleLeftMargin|UIViewAutoresizingFlexibleWidth|UIViewAutoresizingFlexibleHeight;
[self.view addSubview:blueView];
网友评论