1

再一次,我幾乎完全肯定這是我做的一些愚蠢的事情,但是我一直對我的頭撞幾個小時&沒有任何地方。爲什麼我的應用程序導航欄上有20像素高的黑色覆蓋圖?

我試圖重構我的應用程序的視圖層次結構。我需要能夠全局檢測用戶界面方向更改,以正確旋轉應用程序下載內容時顯示的「加載」視圖。 (設備方向更改似乎在不同時間觸發,導致需要響應這些事件以偶爾旋轉的視圖)。

該應用程序以前在主窗口中添加了UINavigationController的視圖。我修改了層次結構以將UIViewController子類的視圖添加到主窗口,並將UINavigationController的視圖添加到子類的視圖。 UIViewController的子類管理着「加載」子視圖的顯示&旋轉,我希望應用程序的其餘部分繼續正常運行,因爲向層次結構中插入一個額外的空視圖並不像我改變太多。

我最初的問題是UINavigationController的定位 - 它是20像素太低,導致狀態欄和導航欄之間的差距,並切斷標籤欄的底部20像素。我可以通過將UINavigationController的視圖的frame屬性設置爲UIViewController的視圖的bounds屬性來進行調整,該視圖糾正了位置。

但是,現在我被一個20像素高的黑色「疊加」卡在我的導航欄上。如果我猜測,我會說它是黑色的,有50%的不透明度。此欄上的觸摸事件不起作用(例如,如果我嘗試通過疊加層輕按「後退」按鈕,則不會發生任何事情)。事實上,身高棒等於狀態欄的高度並沒有逃脫我,但我完全喪失了可能導致它的原因。

Ridiculous navigation bar problem

我討厭這種感覺愚蠢的,因此,如果任何人有任何深入瞭解這個問題,你真的讓我很快樂。提前致謝!

+0

發佈代碼可以幫助人們幫助你。 – Aidanc 2011-02-15 00:35:45

回答

0

好吧,您的帖子中會彈出一些內容。

我最初的問題是 的UINavigationController的定位 - 這是20個 像素太低

這使我相信它關係到你的新的問題。

我能夠由 的UINavigationController的視圖的幀屬性設置 到 UIViewController的視圖的 bounds屬性調整此

這聽起來就像是裝載到被抵消視圖20像素,當你將其設置爲邊界時,它將其重新定位在窗口視圖空間上。

此欄上的觸摸事件不起作用 (例如,如果我試圖通過覆蓋挖掘「返回」 按鈕,沒有任何 發生)

這是一件大事。如果觸摸事件沒有被髮送到視圖,那麼意味着操作系統沒有看到你正在按下的視圖(或者更確切地說是你想要的視圖),因此視圖不會得到消息做某事。

從你說的話,我相信你的問題是你剛纔添加的基本視圖控制器。嘗試重做框架,使其符合您的要求。然後取出放入的代碼來設置導航控制器框架。導航控制器應該適合您添加的視圖,一旦您將主視圖放在需要的位置(顯然高出20像素),那麼一切都應該起作用。

相關問題