2013-10-24 59 views
7

在iOS7中,默認情況下,UIBarButtonItem對樣式UIBarButtonItemStylePlain使用Helvetica常規權重字體,對UIBarButtonItemStyleDone使用粗體權重。在iOS7中,使用UIAppearance代理時UIBarButtonItems不尊重粗體「完成」樣式

我的應用程序使用自定義字體,我使用的是UIAppearance代理來實現這一目標:

appearance = @{NSFontAttributeName: [UIFont fontWithName:@"ProximaNova-Regular" size:18.0]}; 
[[UIBarButtonItem appearance] setTitleTextAttributes:appearance 
              forState:UIControlStateNormal]; 

麻煩的是,外觀代理使平原和完成風格的按鍵我上面指定的定期重字體。

任何想法如何讓UIBarButtonItem根據樣式使用不同的自定義字體重量?

+0

嗨馬克,我知道這是一個姍姍來遲答案,但你有沒有嘗試繼承UIBarButtonItem並添加一個自定義視圖?看看這個答案在這裏:http://stackoverflow.com/questions/18844681/how-to-make-custom-uibarbuttonitem-with-image-and-label。希望這有助於:) –

回答

3

我知道這是遲到的回答,但它可以爲別人有所幫助:

UIBarButtonItem *customBarButton = 
     [[UIBarButtonItem alloc] initWithTitle:NSLocalizedString(@"CustomTitle", @"This button appears in my smexy ViewController's naviagtion bar") 
             style:UIBarButtonItemStylePlain 
             target:self 
             action:@selector(customButtonDidClick:)]; 

    NSDictionary *attributes = @{NSFontAttributeName: [UIFont fontWithName:@"TimesNewRomanPS-BoldMT" size:14.0f], 
           NSForegroundColorAttributeName: [UIColor redColor]}; // here you can add some other keys (especially in iOS 7) to personalize your button title more 

    [customBarButton setTitleTextAttributes:attributes forState:UIControlStateNormal]; 

    [self.navigationItem setRightBarButtonItem:customBarButton]; 

編輯:感謝我的檢測錯字:-)

+0

謝謝@Neru!這樣可行。僅供參考:字體字符串前面有一個缺失@。 –

+0

很高興幫助:-) – Neru

+1

我無法理解此代碼如何解決此問題... – Fry

相關問題