2010-05-30 50 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]; 

從你當前的視圖控制器。

相關問題