2012-06-10 52 views
3

我從同事那裏得到了一個程序,他使用.xib文件來設置他的視圖。 (作爲一名核心編碼員,我從來沒有使用IB自己......) 因此,他設置了自己的ViewControler,並且他有一個NavBar(我在.xib文件中找不到)。將陰影添加到導航欄的標題

我想爲標題添加陰影。

如果我作出的NavBar,相對碼會是這樣的:

textViewTitle.layer.shadowOpacity = 2.0; 
textViewTitle.layer.shadowRadius = 3.0; 
textViewTitle.layer.shadowOffset = CGSizeMake(2.0, 3.0); 

和工作正常。 周圍挖我發現,現在我需要用這個:

NSDictionary *navbarTtlAts = [NSDictionary dictionaryWithObjectsAndKeys: 
          [UIColor whiteColor], UITextAttributeTextColor, 
          [UIColor blackColor], UITextAttributeTextShadowColor, 
          [NSValue valueWithUIOffset:UIOffsetMake(2.0, 3.0)], UITextAttributeTextShadowOffset, 
          nil]; 
[self.navigationController.navigationBar setTitleTextAttributes:navbarTtlAts]; 

雖然這工作,我無法找到如何添加shadowOpacity & shadowRadius東西。

我發現我可以添加在NSDictionary的下面,但它沒有工作...

      [NSNumber numberWithFloat: 2.0], @"shadowOpacity", 
          [NSNumber numberWithFloat: 3.0], @"shadowRadius", 

任何想法?

+0

請刪除除ios和objc以外的所有標籤。它會引起更多關注。 –

回答

2

您應該使用這些鍵爲陰影顏色偏移

UITextAttributeTextShadowColor 
UITextAttributeTextShadowOffset 

沒有辦法指定陰影半徑作爲文本屬性。


如果你真的想要一個自定義陰影,你可以創建自己的UILabel並設置陰影就像在你的第一個例子。然後,您將該標籤設置爲您的視圖控制器UINavigationItemtitleView

您必須自己更新文本(導航控制器不會再自動爲您執行)。