UIView的自动布局,改变父视图,子视图的大小也回随着变化
//
// ViewController.m
// IOS150701_UI(02)_UIView自动布局
//
// Created by PengJunlong on 15/7/1.
// Copyright (c) 2015年 Peng Junlong. All rights reserved.
//
#import "ViewController.h"
@interface ViewController ()
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
//自动布局
CGFloat size = self.view.frame.size.width-300;
UIView *view = [[UIView alloc] initWithFrame:CGRectMake(150, 200, size, size)];
view.backgroundColor = [UIColor orangeColor];
view.tag = 100;
//打开子视图自动布局,随父视图布局的改变而改变
view.autoresizesSubviews = YES; //默认值是YES
//自动剪裁,将子视图超出父视图的部分剪裁掉
view.clipsToBounds = YES;
[self.view addSubview:view];
UIView *topView = [[UIView alloc] initWithFrame:CGRectMake(5, 5, size-10, size)];
topView.backgroundColor = [UIColor greenColor];
//这两个都要设置
//@property(nonatomic) BOOL autoresizesSubviews; // default is YES. if set, subviews are adjusted according to their autoresizingMask if self.bounds changes
//@property(nonatomic) UIViewAutoresizing autoresizingMask; // simple resize. default is UIViewAutoresizingNone
//UIViewAutoresizingNone = 0,//就是不自动调整
// UIViewAutoresizingFlexibleLeftMargin = 1 << 0,//自动调整与superView左边的距离,保证与superView右边的距离不变。
//
// UIViewAutoresizingFlexibleWidth = 1 << 1,//自动调整自己的宽度,保证与superView左边和右边的距离不变
// UIViewAutoresizingFlexibleRightMargin = 1 << 2,//自动调整与superView的右边距离,保证与superView左边的距离不变。
//
// UIViewAutoresizingFlexibleTopMargin = 1 << 3,//自动调整与superView顶部的距离,保证与superView底部的距离不变。
// UIViewAutoresizingFlexibleHeight = 1 << 4,//自动调整自己的高度,保证与superView顶部和底部的距离不变。
// UIViewAutoresizingFlexibleBottomMargin = 1 << 5//自动调整与superView底部的距离,也就是说,与superView顶部的距离不变。
//设置子视图与父视图的四周距离都保持不变
topView.autoresizingMask = UIViewAutoresizingFlexibleWidth|UIViewAutoresizingFlexibleHeight;
[view addSubview:topView];
UIButton *btn = [UIButton buttonWithType:UIButtonTypeSystem];
btn.frame = CGRectMake(100, 400, self.view.frame.size.width-200, 30);
btn.backgroundColor = [UIColor cyanColor];
[btn setTitle:@"点击" forState:UIControlStateNormal];
[btn addTarget:self action:@selector(btnClicked) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:btn];
}
- (void)btnClicked
{
UIView *view = [self.view viewWithTag:100];
CGRect frame = CGRectMake(view.frame.origin.x-1, view.frame.origin.y-1, view.frame.size.width+2, view.frame.size.height+2);
view.frame = frame;
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
@end