设置导航栏标题的对齐方式

Posted

技术标签:

【中文标题】设置导航栏标题的对齐方式【英文标题】:set the alignment of title of navigation bar 【发布时间】:2012-06-11 11:28:51 【问题描述】:

我正在尝试将导航栏的标题与我的应用程序的中心对齐,但标题似乎停留在右侧(请查找屏幕截图)。我正在使用下面的代码:

-(void)viewDidLoad 
    UIBarButtonItem *addButton = [[UIBarButtonItem alloc] initWithTitle:@"Home" style:UIBarButtonItemStylePlain target:self action:@selector(goToHomePage:)];
    [self.navigationController.navigationItem.rightBarButtonItem setTarget:self];
    self.navigationItem.rightBarButtonItem = addButton;
    [addButton release];

viewWillAppear() 中如下

[self.navigationItem setTitle:offertitle];

也试过了

UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(40, 0, 120, 40)];
label.backgroundColor = [UIColor clearColor];
label.font = [UIFont boldSystemFontOfSize:14.0];
label.shadowColor = [UIColor colorWithWhite:0.0 alpha:0.5];
label.textAlignment = UITextAlignmentLeft;
label.textColor =[UIColor whiteColor];
label.text=offertit;
self.navigationItem.titleView = label;

当我隐藏后退按钮时,标题显示居中对齐的标题。有什么方法可以设置后退按钮的外观属性吗?

image link here

谁能指导我哪里出错了。

【问题讨论】:

【参考方案1】:

您不必使用 UILabel。你可以直接使用这段代码:

[self.navigationItem setTitle:@"Your Title"];

你可以走了!此代码将自动将其自身放置在导航栏的中心。

或者,如果您确实有 UINavigationController 的实例,请使用:

[self setTitle:@"Your Title"];

【讨论】:

我有同样的问题,但它对我不起作用,我得到了相同的结果,如问题图像所示。【参考方案2】:

需要在上一个viewcontroller的viewWillDisappear方法中设置self.title = ""。

例如。 ViewControllerB 从 ViewControllerA 打开然后在 ViewControllerA 的 "viewWillDisappear" 方法中设置 self.title = ""

【讨论】:

【参考方案3】:
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil

    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if (self)
    
        // this will appear as the title in the navigation bar
        UILabel *label = [[[UILabel alloc] initWithFrame:CGRectZero] autorelease];
        label.backgroundColor = [UIColor clearColor];
        label.font = [UIFont boldSystemFontOfSize:20.0];
        label.shadowColor = [UIColor colorWithWhite:0.0 alpha:0.5];
        label.textAlignment = UITextAlignmentCenter;
        label.textColor = [UIColor yellowColor]; // change this color
        self.navigationItem.titleView = label;
        label.text = NSLocalizedString(@"PageThreeTitle", @"");
        [label sizeToFit];
    

    return self;

【讨论】:

【参考方案4】:

只需在 ViewDidLoad 中调用它

- (void)prepareNavigationTitle

    UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(-50, 0.0, 240.0, 40.0)];
    label.backgroundColor = [UIColor clearColor];
    label.font = [UIFont boldSystemFontOfSize:14.0];
    label.shadowColor = [UIColor colorWithWhite:0.0 alpha:0.5];
    label.textAlignment = UITextAlignmentLeft;
    label.textColor =[UIColor whiteColor];
    label.text=offertit;
    self.navigationItem.titleView = label;

【讨论】:

【参考方案5】:

如果您有导航控制器,则只需添加:self.title=@"Your Title";

【讨论】:

【参考方案6】:

尝试使用 self.navigationItem.title = @"YourTitle";此代码会将标题放在导航栏的中心。

【讨论】:

以上是关于设置导航栏标题的对齐方式的主要内容,如果未能解决你的问题,请参考以下文章

如何更改折叠导航栏中项目的对齐方式?

导航到下一个活动时更改操作栏颜色及其文本对齐方式

html 用于引导程序的导航栏对齐方式

Bootstrap 3 - 导航栏内容的垂直对齐

SwiftUI - 设置状态栏背景颜色以与导航栏对齐

Xcode 导航栏按钮对齐