提问人:s-n-2 提问时间:4/25/2017 更新时间:4/25/2017 访问量:1391
KeyWindow 添加 subView,没有显示在前面
KeyWindow add subView, did not shows in the front
问:
我使用 keyWindow 添加一个 subView,它增加了成功,但没有显示在屏幕层次结构的前面。
深灰色视图是我添加的视图:
我的代码是:
@interface ViewController ()
{
LMLUpspringView *pop_v;
}
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
pop_v = [[LMLUpspringView alloc] initWithFrame:CGRectMake(0, 0, self.view.bounds.size.width, self.view.bounds.size.height)];
UIWindow *keywindow = [[[UIApplication sharedApplication] delegate] window];
[keywindow addSubview:pop_v];
//[keywindow bringSubviewToFront:pop_v];
//[self.view addSubview:pop_v];
}
我试过用它来走在前面。但不要工作。[keywindow bringSubviewToFront:pop_v]
如果我使用 ,它会显示在前面。[self.view addSubview:pop_v]
答:
0赞
KKRocks
4/25/2017
#1
您可以使用 appdelegate 的 Windows 来解决这个问题:
AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];
[appDelegate.window addSubview:pop_v]
2赞
aircraft
4/25/2017
#2
您遇到此问题,是由于您不知道方法和方法之间的区别造成的。viewDidLoad
viewDidAppear:
viewWill出现:
在将视图添加到窗口的视图层次结构之前调用
viewDid出现:
在将视图添加到视图层次结构后调用
控制器的视图添加到窗口的视图层次结构中介于 和 之间,位于 的前面,因此您不能这样做。您应该添加您的视图。viewWillAppear:
viewDidAppear:
viewDidLoad
viewWillAppear:
viewDidAppear:
0赞
Sargis
4/25/2017
#3
使用这个:
@interface ViewController ()
{
LMLUpspringView *pop_v;
}
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
pop_v = [[LMLUpspringView alloc] initWithFrame:CGRectMake(0, 0, self.view.bounds.size.width, self.view.bounds.size.height)];
UIWindow *keywindow = [[UIApplication sharedApplication] keyWindow];
[keywindow addSubview:pop_v];
//[keywindow bringSubviewToFront:pop_v];
//[self.view addSubview:pop_v];
}
评论