2012-07-19 74 views
0

我正在使用下面的一小段代碼來改變我的導航欄標題應用程序的文本屬性,它的效果很好。UIBarButtonItem外觀iOS5字體?

[[UINavigationBar appearance] setTitleTextAttributes: 
    [NSDictionary dictionaryWithObjectsAndKeys: 
     [UIColor whiteColor], UITextAttributeTextColor, 
     [UIColor grayColor], UITextAttributeTextShadowColor, 
     [NSValue valueWithUIOffset:UIOffsetMake(0, -1)], UITextAttributeTextShadowOffset, 
     [UIFont fontWithName:@"Cochin-BoldItalic" size:0.0], UITextAttributeFont, 
     nil]]; 

但我希望能夠很容易地做到這一點的UIBarButtonItem爲文本以及,但我不能算出它,因爲它沒有分享它出現相同或類似的方法。任何幫助表示感謝,謝謝。

編輯:嘗試這個代碼,而不是做對文本進行修改:

[[UIBarItem appearance] setTitleTextAttributes: 
    [NSDictionary dictionaryWithObjectsAndKeys: 
     [UIColor whiteColor], UITextAttributeTextColor, 
     [UIColor grayColor], UITextAttributeTextShadowColor, 
     [NSValue valueWithUIOffset:UIOffsetMake(0, -1)], UITextAttributeTextShadowOffset, 
     [UIFont fontWithName:@"Cochin-BoldItalic" size:12.0], UITextAttributeFont, 
     nil] 
    forState:UIControlStateNormal]; 

回答

10

你想用UIBarItem的- (void)setTitleTextAttributes:(NSDictionary *)attributes forState:(UIControlState)state方法(從的UIBarButtonItem繼承UIBarItem)。

檢查出文檔的更多細節:http://developer.apple.com/library/ios/#documentation/uikit/reference/UIBarItem_Class/Reference/Reference.html#//apple_ref/occ/cl/UIBarItem

試試這個:

//Suppose you have initialized barButton elsewhere` 
[barButton setTitleTextAttributes: 
    [NSDictionary dictionaryWithObjectsAndKeys: 
     [UIColor whiteColor], UITextAttributeTextColor, 
     [UIColor grayColor], UITextAttributeTextShadowColor, 
     [NSValue valueWithUIOffset:UIOffsetMake(0, -1)], UITextAttributeTextShadowOffset, 
     [UIFont fontWithName:@"Cochin-BoldItalic" size:12.0], UITextAttributeFont, 
     nil] 
    forState:UIControlStateNormal]; 
+0

嗯,沒想到這一點。試了一下,它編譯和運行,這是進步,但它並沒有改變我的酒吧按鈕文本的任何屬性!我已經在我的OP中添加了使用的代碼。 – 2012-07-19 21:21:31

+0

@JoshKahane嘗試我剛剛發佈的內容 – Nosrettap 2012-07-19 21:38:46

0

這似乎在iOS 7.1的工作:

[[UIBarButtonItem appearance] setTitleTextAttributes:@{NSForegroundColorAttributeName:[UIColor whiteColor], 
           NSFontAttributeName:[UIFont fontWithName:@"Resamitz" size:16.0]} 
              forState:UIControlStateNormal]; 
相關問題