2010-03-11 76 views
1

在這我目前正在開發的iPhone應用程序,我提出模擬UIAlertView中和UIActionSheet行爲幾個「警報」的意見。這些視圖需要在UIAlertView或UIActionSheet中不可用的非標準元素。我沒有嘗試子類化,而是創建了自己的類,以便輕鬆定製警報的外觀和感覺。創建半透明覆蓋層以模仿UIAlertView或UIActionSheet?

我與這個有有一個問題是,我有當警報意見都麻煩褪色iPhone屏幕。我想以與UIAlertView和UIActionSheet相同的方式呈現我的自定義視圖時淡出整個屏幕(包括狀態欄)。我試圖通過覆蓋在整個屏幕上半透明,做到這一點,但無論我添加視圖作爲keyWindow的子視圖或最上面的觀點,在狀態欄永遠不會被遮擋。

有沒有人對如何做到這一點有什麼建議?這看起來應該很簡單,所以我可能忽略了一些東西。

回答

3

我還沒有做到這一點,但如果你想覆蓋狀態欄上的任何東西,我會說你必須創建一個UIWindow實例並將它的windowLevel設置爲UIWindowLevelStatusBar。或者在視圖層次結構中找到狀態欄窗口,併爲其添加半透明子視圖。

+0

狀態欄的窗口將不存在於'[[UIApplication的sharedApplication]視窗]'--IT只有'UIWindow's的列表,該應用程序擁有。 (除此之外,你的答案是現貨) – rpetrich

+0

謝謝!我完全忽略了windowLevel屬性。不幸的是,我也在文檔中發現,Apple強烈建議不要在應用程序中創建多個窗口,特別是在顯示警報的情況下。我想知道這樣做會不會在以後再咬我,並導致App Store的拒絕。 – glorifiedHacker