2012-09-25 42 views
0

我一直在使用我認爲是相當標準的iOS 5代碼(並且它是在stackoverflow上的7x accepted answer)讓我的UINavigationBar的標題以自定義的字體出現]UIAppearance的setTitleTextAttributes會導致故事板中的UINavigationBar標題集在iOS 6中顯示爲具有橢圓化標題,但不包含iOS 5

但我發現當我的應用程序爲iOS5構建(以便它可以在iOS5和iOS6設備上運行時)在iOS6模擬器上運行時,它會橢圓化我的標題。

iOS 4 inch Retina display simulator running iOS 6.0

以下是在iOS 5.1模擬器運行相同的代碼。

iOS 3.5 inch Retinda display simulator running iOS 5.1

爲清楚起見,以下是一直工作,直到我試圖在iOS 6

#define COURIER_FONT_BOLD @"CourierNewPS-BoldMT" 

- (UIFont*)navigationBarTitleFontPortrait 
{ 
    if (!_navigationBarTitleFontPortrait) 
     _navigationBarTitleFontPortrait = [UIFont fontWithName:COURIER_FONT_BOLD size:24.0]; 
    return _navigationBarTitleFontPortrait; 
} 

// … 

    if ([[UINavigationBar class] respondsToSelector:@selector(appearance)]) 
    { 
     NSDictionary* attrs = [NSDictionary dictionaryWithObjectsAndKeys: 
              [UIColor lightGrayColor], 
                   UITextAttributeTextShadowColor, 
              [NSValue valueWithUIOffset:UIOffsetMake(1, 0)], 
                   UITextAttributeTextShadowOffset, 
              navigationBarTitleFontPortrait, 
                   UITextAttributeFont, 
              nil]; 
     [[UINavigationBar appearance] setTitleTextAttributes:attrs]; 
    } 

回答

3

運行我發現兩種解決上述問題的相關代碼:

  1. 將標題文字設置爲 .storyboard中的不同尺寸的東西(在我的情況下,我輸入了「...」,然後輸入了viewDidLoad, 致電self.navigationItem.title = @"the GRID";

  2. in viewDidLoad,執行[self.navigationController.navigationBar setNeedsLayout]

我更喜歡後者,因爲它感覺不像一個kludge。無論如何,我猜第一個解決方案迫使第二個解決方案發生。

不知道爲什麼這種行爲在iOS 5和iOS 6之間有所不同,但是這允許它在兩者中都起作用。

+0

這肯定奏效!謝謝! – ruelluna

相關問題