问题描述
- iOS 在viewDidLoad里面添加一个view,并添加在window上,结果发现显示不出来
-
对象是有存在的,只不过是被压到了self.view的下方。为什么直接viewDidLoad里面往window添加会这样。
解决的方法是在视图全部加载完之后,在往window上添加,这样就能显示在最前面了。
这是为什么?
解决方案
我的可以啊! UIWindow *window = [UIApplication sharedApplication].keyWindow;
UILabel *lable = [[UILabel alloc]initWithFrame:CGRectMake(0, 0, 100, 100)];
[lable setBackgroundColor:[UIColor redColor]];
[window addSubview:lable]; 把这行代码放在viewdidload最后 试试
解决方案三:
也不说你是怎么添加的
解决方案四:
对应view什么addsubview来添加
解决方案五:
我想你的这个ViewController是window的 rootViewController 吧?
如果是的话应该是如下解释:
- 设置为 window 的跟视图之后,就要把该 viewcontroller 管理的 view 加到 window 上,iOS 早期版本没有提供 rootViewController ,就是这么做的;
- 获取 viewcontroller 管理的 view 时,第一次是没有改对象的,因此调用 loadview 创建,然后就会调用 viewdidload 方法;
- 你 viewdidload 方法没返回时添加到 window 上一个 view ;紧接着 viewcontroller 管理的 view 加到 window ;
所以就出现了你说的在下面的情况了....
时间: 2024-09-16 02:44:52