2009-10-09 53 views
9

我對iphone /目標c在一個UITableViewController

各種UIViewControllers內的推入視圖一個簡單的導航基於應用設置的字體和標題欄文本的字體大小,我可以設置在文本使用標題欄類似

self.title = @"blah blah blah" 

有沒有辦法來控制字體字體大小在標題欄文字標題的

謝謝!

回答

3

您可以將任何UIView分配給navcontroller的標題區域。

創建一個UILabel,然後設置其字體和大小,然後將其分配給UIViewController的navigationItem.titleView屬性。確保UILabel的backgroundColor設置爲clearColor。

這隻適用於頂級導航視圖。當用戶向下鑽入視圖控制器層次結構並顯示「後退」按鈕時,備用titleView將被忽略,並顯示常規文本標籤。

+0

是否有任何方法來設置*鑽取*標題欄的字體大小等? – user141146 2009-10-09 21:45:21

+0

官方文檔聲稱,下鑽titleview會被忽略(大概是因爲他們希望用戶在下一級的「後退」按鈕中顯示文本之前看到文本)。但是,您總是可以嘗試覆蓋viewDidLoad並遞歸掃描NavBar的視圖層次結構,直到找到合適的UILabel,然後在其上設置字體。 – Ramin 2009-10-10 00:00:01

17

調整大小navcontroller的標題文本的正確方法是設置的navigationItem

這樣的titleview的屬性(在viewDidLoad中)

UILabel* tlabel=[[UILabel alloc] initWithFrame:CGRectMake(0,0, 300, 40)]; 
     tlabel.text=self.navigationItem.title; 
    tlabel.textColor=[UIColor whiteColor]; 
    tlabel.backgroundColor =[UIColor clearColor]; 
    tlabel.adjustsFontSizeToFitWidth=YES; 
    self.navigationItem.titleView=tlabel; 
4

您可能需要壓印標籤,以便看起來不模糊和平坦:

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 

    CGRect frame = CGRectMake(0, 0, 400, 44); 
    UILabel *label = [[[UILabel alloc] initWithFrame:frame] autorelease]; 
    label.backgroundColor = [UIColor clearColor]; 
    label.font = [UIFont boldSystemFontOfSize:18.0]; 
    label.textAlignment = UITextAlignmentCenter; 
    label.textColor = [UIColor whiteColor]; 
    label.text = self.navigationItem.title; 
    // emboss so that the label looks OK 
    [label setShadowColor:[UIColor darkGrayColor]]; 
    [label setShadowOffset:CGSizeMake(0, -0.5)]; 
    self.navigationItem.titleView = label; 
} 
+0

也做了很好的添加textAlignment – 2012-04-23 12:24:42

+0

我不知道什麼FontHelper是,所以我用:'label.font = [UIFont boldSystemFontOfSize:18.0];'這似乎很接近導航欄標題的原始字體。 – Ginny 2012-07-13 14:58:03

+0

@Ginny - 對不起,我沒有注意到我留在了自己的FontHelper類中! – 2012-07-14 04:57:33

3

如果你想這個工作在iphone和ipad上,也想獲得標題居中然後使用下面的代碼。

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 

    UILabel* label=[[UILabel alloc] initWithFrame:CGRectMake(0,0, self.navigationItem.titleView.frame.size.width, 40)]; 
    label.text=self.navigationItem.title; 
    label.textColor=[UIColor whiteColor]; 
    label.backgroundColor =[UIColor clearColor]; 
    label.adjustsFontSizeToFitWidth=YES; 
    label.font = [AppHelper titleFont]; 
    label.textAlignment = NSTextAlignmentCenter; 
    self.navigationItem.titleView=label; 
} 
相關問題