如何制作涵盖整个屏幕的视图,包括状态栏?
的iPhoneOS 3.2前:3.2的iPhoneOS
[[UIApplication sharedApplication] setStatusBarHidden:YES animated:NO];
后:
[[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation: UIStatusBarAnimationNone];
有关这些详细信息,请参阅文档UIApplication。
这隐藏了状态栏。但我希望它留在那里,并覆盖它! – dontWatchMyProfile 2010-05-30 17:41:54
如果它被覆盖了,你怎么知道它仍然存在? – 2010-05-30 17:46:23
哦,我希望视图能够部分透明。 – 2010-05-30 17:46:56
有两种方法可以隐藏状态栏:
Programaticaly在运行时使用UIApplication sharedApplication:
- (void)setStatusBarHidden:(BOOL)hiddenwithAnimation:(UIStatusBarAnimation_)animation
或者在设计时使用的Info.plist属性UIStatusBarHidden是/否值。
你可以尝试创建一个全尺寸的视图,并将其添加为主窗口的子视图。喜欢的东西:
CGRect mainWindowSize = [UIScreen mainScreen].bounds;
UIView* overlay = [[UIView alloc] initWithFrame:mainWindowSize];
// Use colorWithRed:green:blue:alpha: or a solid color then manually tweak alpha
overlay.backgroundColor = [UIColor redColor];
overlay.alpha = 0.2; // transparency level
overlay.userInteractionEnabled = YES;
// Add it on top of the main window
UIWindow* mainWindow = (((MyAppDelegate*)
[UIApplication sharedApplication].delegate).window);
[mainWindow addSubview:overlay];
注意事项:您可能需要手动隐藏状态栏。此外,此叠加视图及其子视图将获取所有用户点按事件。可能要确保这就是你想要的。
推视图控制器作为modalViewController ....
如果您的视图控制器是AVC并假设您使用的导航控制器:
[self presentModalViewController:AVC animated:YES];
从你当前的视图控制器。
考虑重新考虑您的设计。为什么你需要隐藏状态栏?尽管其他一些应用程序正在这样做,但由于审阅过程不一致,仍然可能会因为违反UI而被苹果拒绝。 – 2010-05-30 22:13:39