控件的层级关系和你加入到父视图的顺序有关,也就是先addsubview至父视图的,层级越低,会被后加入的遮盖。
可以通过以下函数改变子视图的层级
将一个UIView显示在最前面:
- (void)bringSubviewToFront:(UIView *)view;
将视图显示在下面:
- (void)sendSubviewToBack...
例如下面的代码示例:
UIView *view1 = [[UIView alloc] initWithFrame:CGRectMake(10, 50, 100, 50)];
view1.backgroundColor = [UIColor blueColor];
[self.view addSubview:view1];
UIView *view2 = [[UIView alloc] initWithFrame:CGRectMake(15, 55, 100, 50)];
view2.backgroundColor = [UIColor grayColor];
[self.view addSubview:view2];
//到这里位置时 view1 会在下面 view2会在上面 因为view2是后加到视图上的
// 下面这行代码能够将view2 调整到父视图的最下面
[self.view sendSubviewToBack:view2];
//下面这段代码是 将view1调整到父视图的最上面
[self.view bringSubviewToFront:view1];