课程来自慕课网Visitor.zc老师
创建UIView
// UIView view1
UIView *view1 = [[UIView alloc] init];
view1.frame = CGRectMake(10, 54, 350, 712);
view1.backgroundColor = [UIColor redColor];
[self.view addSubview:view1];
NSLog(@"w:%f h:%f",[[UIScreen mainScreen] bounds].size.width,[[UIScreen mainScreen] bounds].size.height);
// UIView view2
UIView *view2 = [[UIView alloc] init];
view2.frame = CGRectMake(10, 100, 300, 30);
view2.backgroundColor = [UIColor blackColor];
view2.tag = 2; // 唯一标识
[view1 addSubview:view2];
// UIView view3
UIView *view3 = [[UIView alloc] init];
view3.frame = CGRectMake(20, 50, 100, 100);
view3.backgroundColor = [UIColor purpleColor];
view3.tag = 3; // 唯一标识
[view1 addSubview:view3];
父视图与子视图
// superview
UIView *superview = view1.superview;
superview.backgroundColor = [UIColor grayColor];
// subviews
NSArray *subviewsArray = view1.subviews;
for (UIView *view in subviewsArray) {
if (view.tag == 2) {
view.backgroundColor = [UIColor whiteColor];
}
}
UIView *subView = [view1 viewWithTag:3];
subView.backgroundColor = [UIColor blueColor];
层级的处理
- 同一个父视图中后加入的View在上方
- 子视图跟随父视图进行层级遮挡
// 交换两个层的视图
[view1 exchangeSubviewAtIndex:0 withSubviewAtIndex:1];
// 插入一个视图到指定层
UIView *view5 = [[UIView alloc] init];
view5.frame = CGRectMake(7, 80, 200, 200);
view5.backgroundColor = [UIColor greenColor];
[view1 insertSubview:view5 atIndex:1];
// 将一个View放入最上层或最下层
[view1 bringSubviewToFront:view3];
[view1 sendSubviewToBack:view3];
自适应
// 自适应
UIView *backView = [[UIView alloc] init];
backView.frame = CGRectMake([UIScreen mainScreen].bounds.size.width/2-25, 400, 50, 50);
backView.backgroundColor = [UIColor yellowColor];
backView.autoresizesSubviews = YES; // 允许子视图自适应
backView.tag = 1001;
[self.view addSubview:backView];
UIView *topView = [[UIView alloc] init];
topView.frame = CGRectMake(10, 10, 30, 30);
topView.backgroundColor = [UIColor purpleColor];
// topView.autoresizingMask = UIViewAutoresizingFlexibleLeftMargin;
topView.autoresizingMask = UIViewAutoresizingFlexibleRightMargin;
[backView addSubview:topView];