在UITableViewController中设置标题栏文本的字体和字体大小

use*_*146 9 iphone objective-c

我有一个简单的导航应用程序的iphone/objective-c

在推入视图的各种UIViewControllers中,我可以使用类似的东西在标题栏中设置文本

self.title = @"blah blah blah"
Run Code Online (Sandbox Code Playgroud)

有没有办法控制标题栏文本中标题的字体字体大小

谢谢!

roo*_*ell 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;
Run Code Online (Sandbox Code Playgroud)


Jon*_*att 5

您可能想要压印标签,使其看起来不模糊和平坦:

- (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;
}
Run Code Online (Sandbox Code Playgroud)


Ram*_*min 3

您可以将任何 UIView 分配给导航控制器的标题区域。

创建一个UILabel并根据需要设置其字体和大小,然后将其分配给 UIViewController 的navigationItem.titleView属性。确保 UILabel 的背景颜色设置为clearColor。

这只适用于顶级导航视图。当用户深入视图控制器层次结构并显示“后退”按钮时,将忽略备用 titleView 并显示常规文本标签。