2010-05-30 81 views
0

我想制作一个部分透明的覆盖图,并覆盖包括状态栏在内的整个屏幕。我已经看到,tapbots中的人正是这样做的。所以它肯定有可能。状态栏应该仍然可见!如何制作涵盖整个屏幕的视图,包括状态栏?

+0

考虑重新考虑您的设计。为什么你需要隐藏状态栏?尽管其他一些应用程序正在这样做,但由于审阅过程不一致,仍然可能会因为违反UI而被苹果拒绝。 – 2010-05-30 22:13:39

回答

0

的iPhoneOS 3.2前:3.2的iPhoneOS

[[UIApplication sharedApplication] setStatusBarHidden:YES animated:NO]; 

后:

[[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation: UIStatusBarAnimationNone]; 

有关这些详细信息,请参阅文档UIApplication

+0

这隐藏了状态栏。但我希望它留在那里,并覆盖它! – dontWatchMyProfile 2010-05-30 17:41:54

+0

如果它被覆盖了,你怎么知道它仍然存在? – 2010-05-30 17:46:23

+0

哦,我希望视图能够部分透明。 – 2010-05-30 17:46:56

0

有两种方法可以隐藏状态栏:

Programaticaly在运行时使用UIApplication sharedApplication:

- (void)setStatusBarHidden:(BOOL)hiddenwithAnimation:(UIStatusBarAnimation_)animation 

或者在设计时使用的Info.plist属性UIStatusBarHidden是/否值。

0

你可以尝试创建一个全尺寸的视图,并将其添加为主窗口的子视图。喜欢的东西:

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]; 

注意事项:您可能需要手动隐藏状态栏。此外,此叠加视图及其子视图将获取所有用户点按事件。可能要确保这就是你想要的。

0

推视图控制器作为modalViewController ....

如果您的视图控制器是AVC并假设您使用的导航控制器:

[self presentModalViewController:AVC animated:YES]; 

从你当前的视图控制器。

相关问题