我已經分配了一個標籤,我的導航item.titleviewUINavigation欄自定義字體
的問題是,如果我使用的系統字體,然後將標籤居中導航欄上的..但如果我使用自定義字體是不。
任何幫助將不勝感激。
我已經分配了一個標籤,我的導航item.titleviewUINavigation欄自定義字體
的問題是,如果我使用的系統字體,然後將標籤居中導航欄上的..但如果我使用自定義字體是不。
任何幫助將不勝感激。
所有以上三個答案是有幫助..
綜上所述:
titleView
更新其框架..只有origin.x和寬度有一個效果..y值沒有。size to fit
它沒有工作......然後我嘗試了很多東西..製作一個按鈕並設置其標題..等等..仍然錯誤依然存在。因此,解決辦法很簡單,足以讓我..因爲我的導航欄標題不會更改..我只是用文本圖像替換它。
使用
UIImageView *TitleImage = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"MyImage.png"]];
self.navigationItem.titleView = TitleImage;
[TitleImage release];
這不會對那些標題的變化..謝謝所有工作..
這看起來像一個錯誤,所以請在https://bugreport.apple.com提交報告。包括您生成這些屏幕截圖的代碼將是非常有用。
與此同時,您可以嘗試通過相應的UINavigationItem
的titleView
屬性自己定位標籤。
這是一個已知的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];
}
這應該做的伎倆, 編碼快樂!
導航欄根據其框架大小對標籤進行居中。如果您將標籤的框架設置得比所需的大,或者在可見文本之後放置了額外的空格,它將顯示爲偏離中心。
要使標籤完全像其文本所需的那樣大,請將sizeToFit
消息發送到標籤。或者,如果您在筆尖中創建了標籤,請選擇該標籤,然後從菜單欄中選擇編輯器>尺寸以適合內容。
您還可以將標籤的textAlignment
屬性設置爲UITextAlignmentCenter
。
測試項目在這裏:http://dl.dropbox.com/u/26919672/navbartitleview.zip
不錯項目..顯然我認爲這是因爲我的自定義字體..感謝您的所有幫助 – Shubhank 2012-02-14 19:26:53
有一種方法可以在不添加自定義標籤的情況下解決此問題。通過從viewDidLoad
方法中設置self.title
,titleLabel將調整大小。但是,您需要使用在故事板中定義的不同標題。當標籤的內容不變時,它不會調用sizeToFit
(這對我來說聽起來合乎邏輯)。
假設你支持iOS 5以上,那麼要使用[UINavigationBar appearance]
方法設置自定義標題字體,欄按鈕字體,欄按鈕圖像等
在這裏閱讀更多: http://www.raywenderlich.com/21703/user-interface-customization-in-ios-6
我已經在這裏上傳了一個測試項目:http://dl.dropbox.com/u/26919672/navbartitleview.zip – 2012-02-14 19:11:25
你能幫忙嗎我與另一件事...你今天早些時候幫助我的一個問題..所以我有這個代碼'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
請不要在評論中提出新的和無關的問題。只需創建一個新的stackoverflow問題。 – 2012-02-14 19:27:08