2012-02-14 98 views
0

我已經分配了一個標籤,我的導航item.titleviewUINavigation欄自定義字體

的問題是,如果我使用的系統字體,然後將標籤居中導航欄上的..但如果我使用自定義字體是不。

enter image description here

任何幫助將不勝感激。

回答

0

所有以上三個答案是有幫助..

綜上所述:

  1. 從上面的答案..我也可以說這是一個錯誤
  2. @戴夫德龍 ..我試圖通過titleView更新其框架..只有origin.x和寬度有一個效果..y值沒有。
  3. @rob mayoff我的第一個代碼包括size to fit它沒有工作......然後我嘗試了很多東西..製作一個按鈕並設置其標題..等等..仍然錯誤依然存在。
  4. @rinzler我試過..didn't工作了me.bug還在那裏與我的字體...可能工作爲別人..

因此,解決辦法很簡單,足以讓我..因爲我的導航欄標題不會更改..我只是用文本圖像替換它。

使用

UIImageView *TitleImage = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"MyImage.png"]]; 
self.navigationItem.titleView = TitleImage; 
[TitleImage release]; 

這不會對那些標題的變化..謝謝所有工作..

+0

我已經在這裏上傳了一個測試項目:http://dl.dropbox.com/u/26919672/navbartitleview.zip – 2012-02-14 19:11:25

+0

你能幫忙嗎我與另一件事...你今天早些時候幫助我的一個問題..所以我有這個代碼'CGSize imagesize = CGSizeMake(67,67); UIGraphicsBeginImageContextWithOptions(imagesize,NO,0.0); NSLog(@「Converting」); [image drawInRect:CGRectMake(0,0,imagesize.width,imagesize.height)]; newImage = UIGraphicsGetImageFromCurrentImageContext(); UIGraphicsEndImageContext(); 「即使當我在模擬器中選擇iPhone Retina時,圖像仍然以67 x 67進來? – Shubhank 2012-02-14 19:24:20

+1

請不要在評論中提出新的和無關的問題。只需創建一個新的stackoverflow問題。 – 2012-02-14 19:27:08

0

這看起來像一個錯誤,所以請在https://bugreport.apple.com提交報告。包括您生成這些屏幕截圖的代碼將是非常有用

與此同時,您可以嘗試通過相應的UINavigationItemtitleView屬性自己定位標籤。

1

這是一個已知的bug,但你可以通過以下方式繞過它:

// adds a custom title label to the view 
-(void)addNavBarTitle:(NSString*)titleText 
{ 
    UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 360, 30)];  // NOTE: YOU CAN ADD PADDING TO THE LABEL BY CHANGING ITS Y ORIGIN 
    [label setFont:[UIFont fontWithName:@"Arial-BoldMT" size:14]];     // Use custom font if needed 
    [label setBackgroundColor:[UIColor clearColor]]; 
    [label setTextColor:[UIColor whiteColor]]; 
    [label setText:titleText];              // Dynamically change title. Else just explicitly set the string here 
    label.textAlignment = UITextAlignmentCenter; 
    [self.navigationController.navigationBar.topItem setTitleView:label]; 
    [label release]; 
} 

這應該做的伎倆, 編碼快樂!

0

導航欄根據其框架大小對標籤進行居中。如果您將標籤的框架設置得比所需的大,或者在可見文本之後放置了額外的空格,它將顯示爲偏離中心。

要使標籤完全像其文本所需的那樣大,請將sizeToFit消息發送到標籤。或者,如果您在筆尖中創建了標籤,請選擇該標籤,然後從菜單欄中選擇編輯器>尺寸以適合內容。

您還可以將標籤的textAlignment屬性設置爲UITextAlignmentCenter

測試項目在這裏:http://dl.dropbox.com/u/26919672/navbartitleview.zip

+0

不錯項目..顯然我認爲這是因爲我的自定義字體..感謝您的所有幫助 – Shubhank 2012-02-14 19:26:53

2

有一種方法可以在不添加自定義標籤的情況下解決此問題。通過從viewDidLoad方法中設置self.title,titleLabel將調整大小。但是,您需要使用在故事板中定義的不同標題。當標籤的內容不變時,它不會調用sizeToFit(這對我來說聽起來合乎邏輯)。