【发布时间】:2010-08-18 10:44:08
【问题描述】:
我想全屏显示UIView,但显示状态栏,其他东西,比如导航栏需要被UIView覆盖。
我该怎么做?
【问题讨论】:
标签: iphone ios objective-c iphone-sdk-3.0
我想全屏显示UIView,但显示状态栏,其他东西,比如导航栏需要被UIView覆盖。
我该怎么做?
【问题讨论】:
标签: iphone ios objective-c iphone-sdk-3.0
我相信他要问的是如何让 UIView 覆盖整个屏幕(有点像自定义弹出窗口)。这正是我最终来到这里的原因。所以我会提供我的解决方案。在任何地方调用这个函数。
[self.navigationController.view addSubview:yourUIView];
这里你介绍的视图覆盖了整个屏幕,不像
[self.view addSubview:yourUIView];
因此,导航栏被揭开。
【讨论】:
yourUIView的框架,使用UIView方法+ (void)animateWithDuration:(NSTimeInterval)duration animations:(void (^)(void))animations
将视图作为子视图直接添加到主 UIWindow 实例。
【讨论】:
有点难以完全理解这个问题,但我想你是在问如何在另一个视图上方显示UIView(这样带有导航控件的视图完全被第二个视图隐藏)?
UIViewController 有:
- (void)presentModalViewController:(UIViewController *)modalViewController animated:(BOOL)animated
将您的第二个视图也由UIViewController 管理是明智的。例如,假设您的导航栏视图由UINavigationViewController 管理,而您要显示的视图由otherViewController 管理...
[navigationViewController presentModalViewController:otherViewController animated:YES];
【讨论】:
我知道 OP 正在寻找一种完全覆盖导航栏的方法,但您可以暂时隐藏它,而不是覆盖它。隐藏后,您可以将视图添加为子视图并更改其框架或约束,使其占据整个屏幕。
- (void)showViewOverNavBar:(UIView *)view {
[self.navigationController setNavigationBarHidden:YES];
[self.view addSubview:view];
}
【讨论】: