iOS基础之路之addsubview和insertSubView

子视图是以栈的方式存放的。

每次插入或添加时[self.view.subViews count]都会增加。

addsubview时都是在栈最后面添加,即在视图的最上方。

insertSubView时是插入栈的某一位置,即插入视图层的某一位置。

即[self.view addSubView:xx.view]  等价于 [self.view insertSubView:xx.view atIndex:[self.view.subViews count]];

总之:

addSubview是一层一层往上加,新加的只能放到最上层,

insertSubView可以控制将view添加到指定的层。
————————————————
版权声明:本文为CSDN博主「十万个逗」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/q1194259339/article/details/76283741

iOS中调整view层级位置的两个属性

控件的层级关系和你加入到父视图的顺序有关,也就是先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];  

       

    

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
// // main.m // Hello World_Code // #import #import "AppDelegate.h" int main(int argc, char *argv[]) { @autoreleasepool { return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); } } // // AppDelegate.h // Hello World_Code // #import @interface AppDelegate : UIResponder @property (strong, nonatomic) UIWindow *window; @end // // AppDelegate.m // Hello World_Code // #import "AppDelegate.h" @implementation AppDelegate - (void)dealloc { [_window release]; [super dealloc]; } - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease]; self.window.backgroundColor = [UIColor whiteColor]; [self.window makeKeyAndVisible]; UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(320/2.0 - 140/2.0, 80, 140, 40)]; // 1 label.text = @"Hello World"; label.backgroundColor = [UIColor cyanColor]; label.textAlignment = NSTextAlignmentCenter; [self.window addSubview:label]; // 2 [label release]; // 1 return YES; } - (void)applicationWillResignActive:(UIApplication *)application { // Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state. // Use this method to pause ongoing tasks, disable timers, and throttle down OpenGL ES frame rates. Games should use this method to pause the game. } - (void)applicationDidEnterBackground:(UIApplication *)application { // Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值