2013-09-29 50 views
7

我在UIView中有一個MKMapView。從未有任何問題,直到iOS7。 UITabbar和UINavigationBars的顏色由UIAppearance協議設置。MKMapview影響UINavigationBar和TabBar外觀

由於某些原因,無論何時啓動MKMapView,我的所有tabbars和navbars都會重置,忽略我外觀類的barTintColor設置。來自UIAppearance的所有其他設置似乎仍然存在,例如標題屬性和barItem屬性。只有barTintColor熄滅。

還有一件事。這隻發生在iPhone 4和iPhone4S上,而不是iPhone 5上。它也不會在模擬器上發生。完全不是iOS6的問題。

我可以找到沒有其他原因的重置。我仔細審閱了所有的內容,並且沒有任何影響。

如果我刪除MKMapView控件,不重置顏色。如果我繼續用MKMapView展示另一個完全不同的視圖,那麼顏色重置。

我正在尋找什麼其他檢查的想法,什麼樣的設置或方法可能會導致此行爲。給我一些東西來消除,我卡住了。

附加信息:

現在想到這可能是一個錯誤。我放了一行代碼,將導航欄的顏色硬編碼爲ViewDidLoad中的任意顏色,以查看發生了什麼。

UINavigationBar *bar = self.navigationController.navigationBar; 
[bar setBarTintColor = [UIColor GreenColor]; 

我放下了下一行。檢查酒吧,顏色似乎設置。

在iPhone4或4S上,酒吧不會變綠。在iPhone5和模擬器上,酒吧變成綠色。

我發現了更多的項目。顏色不變。看起來可見度是。然而,閱讀顏色和酒吧的alpha值都會返回1.0。

所以顏色是正確的。

半透明是。

Alpha是1.0。

但酒吧是完全清晰,沒有顏色,沒有色調。

我想我會正式將其作爲一個錯誤進行存檔。我只用一個MKMapview做了一個測試viewController。沒有代碼,沒有委託,沒有註釋。提出,以取代我的適當管制員。同樣的事情發生了。

我現在需要的是一種解決方法。我不知道有什麼變化。當我檢查導航欄的屬性時,一切都是正確的。色調,半透明度,酒吧色調,alpha值。據我所知,這件事應該按照預期顯示。

任何人都可以告訴我其他屬性或方法,可以使導航欄的背景完全透明嗎?

+0

上傳一些圖片的問題和一些代碼。謝謝 –

+1

沒有真正上傳。一切都如預期,直到我用MKMapView控件呈現任何視圖。然後,巴姆,我所有的導航欄和tabbars都失去了自定義顏色。如果我知道代碼是在做什麼的話,我會很有魅力。 –

+1

我有同樣的問題... – oscar

回答

8

經過一些更多的搜索後,我發現開發人員論壇中有一些相關的主題,並且這個問題已經有一段時間了。我希望我會收到迴應,我的錯誤報告是一個騙局。同時,我相信我已經想出了一個解決方法。

我想出了是裝載含有的MKMapView視圖時設定

self.navigationController.navigationBar.translucent = NO; 
self.tabBarController.tabBar.translucent = NO; 

,然後將其設置在YES的viewDidAppear的序列。我在viewWillDisappear上再次設置爲NO。然後,返回的viewController必須在viewDidAppear中重新設置爲半透明。

我在視圖控制器和地圖中使用了一系列NSNotification帖子。我將我的導航控制器和標籤欄分類,讓他們聽取通知,並通過切換自己的酒吧半透明屬性進行響應。

管理完成。使用少量的代碼,但沒有很好的理由,這是一個非常多的活動。更希望看到這個固定儘快。

+0

謝謝。謝謝。謝謝。謝謝。謝謝謝謝。謝謝。謝謝。 –

+0

我試過這個,但它不能很好地工作。谷歌現在有一個sdk把他們的地圖放入一個iOS應用程序,這是我可以想出的最好的解決方案,直到他們解決了這個bug –

+0

固定在7.0.3 yay – kubbing