Ios 如何在UIWindow中添加视图?
我想用以下代码在Ios 如何在UIWindow中添加视图?,ios,objective-c,uiwindow,Ios,Objective C,Uiwindow,我想用以下代码在ui窗口中添加一个视图: AppDelegate *delegate = (AppDelegate *)[UIApplication sharedApplication].delegate; UIWindow *window = delegate.window; UIView *aView = [[UIView alloc]initWithFrame:CGRectMake(0, 0, 100, 100)]; aView.backgroundColor = [UIColor
ui窗口中添加一个视图:
AppDelegate *delegate = (AppDelegate *)[UIApplication sharedApplication].delegate;
UIWindow *window = delegate.window;
UIView *aView = [[UIView alloc]initWithFrame:CGRectMake(0, 0, 100, 100)];
aView.backgroundColor = [UIColor blackColor];
[window addSubview:aView];
window = [[UIApplication sharedApplication].windows objectAtIndex:0];
这个代码不起作用。我想克隆UIAlertView的属性。当我们打电话时,它会突然出现在所有东西上面
[alertViewInstance show]代码>方法
也尝试过这个:
UIView *aView = [[UIView alloc]initWithFrame:CGRectMake(0, 0, 100, 100)];
UIWindow* window = [UIApplication sharedApplication].keyWindow;
if (!window) {
window = [[UIApplication sharedApplication].windows objectAtIndex:0];
}
[window addSubview:aView];
[window bringSubviewToFront:aView];
您的windows需要有根视图控制器
AppDelegate *delegate = (AppDelegate *)[UIApplication sharedApplication].delegate;
UIWindow *window = delegate.window;
UIViewController *controller = [[UIViewController alloc] init];
window.rootViewController = controller;
UIView *aView = [[UIView alloc]initWithFrame:CGRectMake(0, 0, 100, 100)];
aView.backgroundColor = [UIColor blackColor];
[controller.view addSubview:aView];
您可以尝试以下代码…将子视图添加到窗口
UIView *aView = [[UIView alloc]initWithFrame:CGRectMake(0, 0, 100, 100)];
aView.backgroundColor = [UIColor blackColor];
[[UIApplication sharedApplication].keyWindow addSubview:aView];
//移除
[aView removeFromSuperview];
希望对你有帮助 我想你错过了这个。检查一下
[self.window makeKeyAndVisible];
请尝试使用以下代码:
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
UIWindow* window = [UIApplication sharedApplication].keyWindow;
if (!window) {
window = [[UIApplication sharedApplication].windows objectAtIndex:0];
}
UIView *aView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 100, 100)];
aView.backgroundColor = [UIColor redColor];
aView.center = window.center;
[window insertSubview:aView aboveSubview:self.view];
[window bringSubviewToFront:aView];
}
window = [[UIApplication sharedApplication].windows lastObject];
UIAlertView创建另一个UIWindow,并在调用show方法时将此窗口设置为键窗口。因此,如果您想显示自己的警报视图,请创建一个UIWindow实例,显示它并将自定义警报视图添加到此新创建的窗口。请尝试以下代码:
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
UIWindow* window = [UIApplication sharedApplication].keyWindow;
if (!window) {
window = [[UIApplication sharedApplication].windows objectAtIndex:0];
}
UIView *aView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 100, 100)];
aView.backgroundColor = [UIColor redColor];
aView.center = window.center;
[window insertSubview:aView aboveSubview:self.view];
[window bringSubviewToFront:aView];
}
window = [[UIApplication sharedApplication].windows lastObject];
替换以下代码:
AppDelegate *delegate = (AppDelegate *)[UIApplication sharedApplication].delegate;
UIWindow *window = delegate.window;
UIView *aView = [[UIView alloc]initWithFrame:CGRectMake(0, 0, 100, 100)];
aView.backgroundColor = [UIColor blackColor];
[window addSubview:aView];
window = [[UIApplication sharedApplication].windows objectAtIndex:0];
如果您使用的是UINavigationController
使用:
[self.navigationController.view.window addSubview:aView];
[self.tabBarController.view.window addSubview:aView];
如果您使用的是UITabBarController
使用:
[self.navigationController.view.window addSubview:aView];
[self.tabBarController.view.window addSubview:aView];
在AppDelegate
中,您可以直接将视图指定给窗口。在appDelegate
中,使用选项完成启动
方法使用:
[self.window addSubview:aView];
希望对您有所帮助…您可以使用以下命令添加视图
[[[UIApplication sharedApplication] keyWindow] addSubview:YOUR_VIEW];
这似乎可行,但新视图覆盖了整个屏幕。它的帧是{(0,0)(320568)}是的,viewcontroller.view覆盖了整个屏幕。你想要的视图大小为100,我想做的是让它看起来像alertView。透明背景。但它将与调用此代码的viewController重叠。当我添加此视图时,它将成功添加!!但是我的导航栏稍微隐藏在这个视图后面。有什么建议吗@尼科斯姆,嗯?它会起作用的。我使用此代码来定制(伪造)popoverView或alertView。您可以在下面添加代码:[窗口显示SubViewToFront:aView];我的故事板:如果您不设置RootViewController,则aView将不会显示。当我添加此视图时,它将成功添加!!但是我的导航栏稍微隐藏在这个视图后面。有什么建议吗@TienReset itsrootViewController
和makeKeyAndVisible
;在您的应用程序中(完成启动后!)如果您没有像这样使用UIWindow
,这显然意味着您不需要为实际任务使用UIWindow
。就是这样。。。其他方法可以工作,只要你有这个当我添加此视图时,它会成功添加!!但是我的导航栏稍微隐藏在这个视图后面。有什么建议吗@维迪南德