首页 > 其他分享 >关于self.view.window与viewDidLoad、viewWillAppear、viewDidAppear

关于self.view.window与viewDidLoad、viewWillAppear、viewDidAppear

时间:2023-06-13 22:34:37浏览次数:34  
标签:11 01 viewWillAppear self 09 window demo010


关于self.view.window与viewDidLoad、viewWillAppear、viewDidAppear

 

在进入一个界面(UIViewController),如果要在进入的时候使用self.view.window,那么必须在将使用代码放在viewDidAppear方法中,而viewDidLoad、viewWillAppear中self.view.window.frame为0{{0,0},{0,0}}。

 



- (void)viewDidLoad {
    NSLog(@"viewDidLoad");
    [super viewDidLoad];
}


-(void)viewWillAppear:(BOOL)animated{
    NSLog(@"viewWillAppear");
    [super viewWillAppear:animated];
}

-(void)viewDidAppear:(BOOL)animated{
    NSLog(@"viewDidAppear");
    [super viewDidAppear:animated];
    [self _doTest01];
}

- (void)_doTest01 {
    NSLog(@"_doTest01");
    //UIView
    UIView* vwFullScreenView = [[UIView alloc]init];
    vwFullScreenView.backgroundColor=[UIColor yellowColor];
    vwFullScreenView.frame=self.view.window.frame;
    NSLog(@"%@",NSStringFromCGRect(vwFullScreenView.frame));
    [self.view.window addSubview:vwFullScreenView];
    
    //UILabel
    UILabel* lblTitle = [[UILabel alloc]init];
    lblTitle.text=@"显示了@_@";
    lblTitle.frame=CGRectMake(0, 0, 200, 40);
    lblTitle.textAlignment=NSTextAlignmentCenter;
    lblTitle.backgroundColor=[UIColor whiteColor];
    lblTitle.center=vwFullScreenView.center;
    [vwFullScreenView addSubview:lblTitle];
    
}



输出:

2015-11-01 09:21:27.031 demo010[7638:261914] viewDidLoad
2015-11-01 09:21:27.032 demo010[7638:261914] viewWillAppear
2015-11-01 09:21:27.038 demo010[7638:261914] viewDidAppear
2015-11-01 09:21:27.038 demo010[7638:261914] _doTest01
2015-11-01 09:21:27.039 demo010[7638:261914] {{0, 0}, {320, 568}}

关于self.view.window与viewDidLoad、viewWillAppear、viewDidAppear_】、


 

 

如果将[self _doTest01];代码放到viewDidLoad 或 viewWillAppear 方法中,那么输出结果如下:

2015-11-01 09:35:00.054 demo010[7762:271018] viewDidLoad
2015-11-01 09:35:00.054 demo010[7762:271018] viewWillAppear
2015-11-01 09:35:00.054 demo010[7762:271018] _doTest01
2015-11-01 09:35:00.054 demo010[7762:271018] {{0, 0}, {0, 0}}
2015-11-01 09:35:00.061 demo010[7762:271018] viewDidAppear

 

可以看到self.view.window的frame为 {{0, 0}, {0, 0}},说明此时self.view.window还没显示出来。

 

 

 

 

 

 

 

标签:11,01,viewWillAppear,self,09,window,demo010
From: https://blog.51cto.com/u_16160131/6473907

相关文章

  • Windows系统提示“不是内部或外部命令,也不是可运行的程序或批处理文件”怎么办?
    Windows系统电脑/服务器在运行CMD命令提示符时提示“不是内部或外部命令,也不是可运行的程序或批处理文件”,遇到这种情况怎么办呢?今天我和你们分享解决办法。方法一:重新配置系统环境变量(演示的是Windows10系统)1、开始——控制面板——系统2、高级系统设置——高级——环境变量(快捷......
  • windows更新失败
    由于配置WindowsUpdate失败,还原更改状态下无法正常关机,只能长按电源键关机后进入WinPE环境。进入WinPE环境,选择Dism++,如图第一列第三行。双击Dism++,选择操作系统后,打开会话。在左边列表找到更新管理,然后选择已安装的更新。这时我们可以看到更新状态分为3类,已安装、已固化和......
  • windows安装pytorch环境
    由于CUDAVersion更新到11.7了,因此,本教程也同步更新安装Anaconda(1)首先打开Anaconda官网,下载对应平台的安装包Anaconda官网我们这里安装的包是Anaconda3-2022.10-Windows-x86_64.exe然后,双击exe文件,开始安装等待安装结束(这里选择Justme即可)注:这里有一种方法可以自动添加......
  • windows下使用minio搭建s3存储,使用laravel和postman进行测试
    1、下载服务端https://dl.min.io/server/minio/release/windows-amd64/minio.exe2、启动服务minio.exeserverd:\data\minio--console-address:9090 可以看到上面有两块ip,分别是9000和9000端口,其中9090是后台管理端地址的端口,9000是前台接口端口3、创建bucket4......
  • Git(分布式版本控制系统)在Windows下的使用-将代码托管到开源中国(oschina)
    一、Git是什么?    Git---Thestupidcontenttracker,傻瓜内容跟踪器。Git是目前世界上最先进的分布式版本控制系统。二、SVN与Git的最主要的区别?     SVN是集中式版本控制系统,版本库是集中放在中央服务器的,而干活的时候,用的都是自己的电脑,所以首先要从中央服务......
  • .NET编译项目时出现《此实现不是 Windows 平台 FIPS 验证的加密算法的一部分》处理方
    此实现不是Windows平台FIPS验证的加密算法的一部分。”)的问题,如下图所示:对于上面的问题,只需要修改下注册表即可处理,方法如下:1、以管理员方式启动命令行工具后输入regedit,回车打开注册器;。2、打开注册表后,进入路径:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Co......
  • window下正常的springboot到mac下运行却报错
    Errorcreatingbeanwithname'defaultValidator'definedinclasspathresource[org/springframework/boot/autoconfigure/validation/ValidationAutoConfiguration.class]:Invocationofinitmethodfailed;nestedexceptionisjava.lang.NoClassDefFoun......
  • window下安装docker并运行angular项目
    window下安装docker并运行angular项目1、使用场景本地有一个node项目,node版本是v16.13.2,在本地安装的angular是15.2.4但是测试服上面的node版本是14.19.3,angular是1.0.0-beta.28.3,会导致angular项目的ngbuild打包不了。但是不能升级版本,因为这个测试服务器上面的东西也......
  • windows下安装rabbitmq
    1、Erlang的安装因为RabbitMQ是用Erlang语言编写的,所以要安装RabbitMQ先要安装Erlang。下载地址:http://www.erlang.org/downloads下载完成后就双击一直next后安装[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-sosn4mCm-1684822676988)(C:\Users\Adm......
  • windows卸载应用商店python后,导致conda环境变量不可用解决办法
    输入wherepython可以查看命令位置,大概率会出现两行。在windowsstore安装过python之后,在控制台输入python总是会跳转到应用商店,让再次安装Python,原因是在C:\Users\用户名\AppData\Local\Microsoft\WindowsApps目录下生成了python.exe和python3.exe解决方法:在设置->应用->应用和......