当子视图直接是用代码的方式创建时,就无法在Storyboard或xib中对其进行Autosizing的设置和操作,此时就需要用代码的方式使用Autoresizing技术。本案例将学习如何使用代码的方式进行Autoresizing布局,使界面上的两个按钮始终保持在屏幕的右上角和右下角
实现此案例需要按照如下步骤进行。
步骤一:创建项目,添加按钮控件
首先创建一个SingleViewApplication项目。在TRViewController.m文件的viewDidLoad方法中创建两个UIButton控件,分别设置两个button的frame属性,将两个button放置在屏幕的右上角和右下角,代码如下所示:
- UIButton *btn1 = [UIButton buttonWithType:UIButtonTypeSystem];
- btn1.frame = CGRectMake(self.view.bounds.size.width - 20 - 80, self.view.bounds.size.height - 20 - 35, 80, 35);
- btn1.backgroundColor = [UIColor lightGrayColor];
- [self.view addSubview:btn1];
- UIButton *btn2 = [UIButton buttonWithType:UIButtonTypeSystem];
- btn2.frame = CGRectMake(self.view.bounds.size.width - 20 - 80, 20, 80, 35);
- btn2.backgroundColor = [UIColor lightGrayColor];
- [self.view addSubview:btn2];
步骤二:设置Button的autoresizingMask属性,进行Autoresizing布局
通过设置Button的autoresizingMask属性,进行Autoresizing布局,autoresizingMask属性是UIViewAutoresizing的枚举类型。
首先使用代码分别将btn1相对于父视图的上边距和左边距固定,即将btn1.autoresizingMask设置为UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleTopMargin。
然后使用代码分别将btn2相对于父视图的下边距和左边距固定,即将btn2.autoresizingMask设置为UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleBottomMargin,代码如下所示:
- //设置button的Autoresizing布局属性,将按钮btn1相对于父视图的上边距和左边距固定
- btn1.autoresizingMask = UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleTopMargin;
- //将btn2相对于父视图的左边距和下边距固定
- btn2.autoresizingMask = UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleBottomMargin;