2010-08-31 33 views
0

我想將自定義Alpha值應用於UINavigationBar的標題。 UINavigationBarUINavigationController的一部分,UINavigationControllerUITabBarController的一部分。在Xcode中繼承UINavigationBar

編輯:這是我用UIToolbar和UILabel創建的圖片。我想要使​​用UINavigationController中的標題來做同樣的事情:http://i.stack.imgur.com/B8YX0.png

我認爲完成此操作的唯一方法是對UINavigationBar進行子類化並覆蓋允許我在繪製Alpha時設置的方法。

這裏是我的問題:

  1. 這是這樣做的正確方法?
  2. 這是什麼HIG的後果?
  3. 我是Objective-C中的子類新手,能否提供指導或 教程,幫助我掌握子類化UI元素和實施更改所需的步驟?
  4. 當我得到配置的子類時,我可以通過將 UINavigationBar的類更改爲我的自定義類,在IB中查看它,對嗎?
  5. 是否有任何「陷阱」,可以拿出分類,像你這樣的專家可以給我一個腦袋?

回答

3

這是你不應該做的事情。你爲什麼要改變顏色,但不是酒吧的整體不透明度?它降低了可讀性。有多種問題:

  • 沒有公開的API,所以它的不平凡
  • 與子視圖篡改是脆弱的,可能會破裂並可能有副作用
  • 它沒有預見到做 - 使用視圖的Alpha值和入棧/控制器

如果你真的想這樣做時,動畫,只有一個乾淨的,公開的方式:給每個導航項目被推向一個自定義標題視圖。你可以儘可能多地篡改那個。因此,可以設置一個視圖爲UILabel作爲子視圖並將其alpha設置爲0.5。

0

導航欄由導航控制器管理時,只允許更改一些屬性(請參閱docs)。其中之一是translucent,它調整阿爾法,但僅限於Apple確定的值。

+0

我不想修改NavigationBar本身的半透明屬性,而不是修改其中包含的標題標籤。我是否可以通過半透明的方式修改標題的字母?我在帖子中添加了一條鏈接,指向我想要完成的照片。 – 2010-08-31 16:08:02