这个属性对于多种控件都适用
button.autoresizingMask = UIViewAutoresizingFlexibleRightMargin | UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleBottomMargin | UIViewAutoresizingFlexibleTopMargin;
UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(50, 100, 200, 40)];
[label setAutoresizingMask: UIViewAutoresizingNone]; 控件相对于父视图坐标值不变
有这样的一些值
typedef NS_OPTIONS(NSUInteger, UIViewAutoresizing) {
UIViewAutoresizingNone = 0,
UIViewAutoresizingFlexibleLeftMargin = 1 << 0,
UIViewAutoresizingFlexibleWidth = 1 << 1,
UIViewAutoresizingFlexibleRightMargin = 1 << 2,
UIViewAutoresizingFlexibleTopMargin = 1 << 3,
UIViewAutoresizingFlexibleHeight = 1 << 4,
UIViewAutoresizingFlexibleBottomMargin = 1 << 5
};
1)、UIViewAutoresizingNone 这个属性是指,控件相对于父视图坐标没有任何改变(不管父视图的长宽改变为多少,子控件的坐标是定值)。
2)、UiViewAutoresizingFlexibleleftMargin 控件相对于父视图,随着父视图的宽度比例变化,横坐标跟着变化,比如说上面的lable frame = CGRectmake(50,100,200,40); 如果之前父视图的长宽是320*480 现在变成了480*320 那么在父视图改变之后,如果只限制这一个属性,那么变化后的lable横坐标就变为: 50*(480/320) lable的坐标就是:(50*(480/320),100,200,40);
3)、UIViewAutoresizingFlexibleRightmargin 、 UIViewAutoresizingFlexibleTopmargin 、 UIViewAutoresizingFlexibleBottommargin 三个属性和2)类似;
4)、UIViewAutoResizingFlexibleWidth 和20类似,只不过是lable的宽度按照比例发生改变
UILabel *lable = [[UILabel alloc]initWithFrame:CGRectMake(50, 50, 200, 50)];
[lable setAutoresizingMask:UIViewAutoresizingFlexibleWidth];
NSLog(@"%@",lable.text);
[self.view addSubview:lable];
看看同样的代码在模拟器里面的效果