向左或向右移动UINavigationBar标题的文本

时间:2013-08-06 00:51:49

标签: ios uinavigationbar

我希望能够在UInavigationBar中控制标题的位置。例如,现在我的标题是居中的,但是对于某些视图,我需要将标题原点向左移动几个px左右。这可能吗?

谢谢!

2 个答案:

答案 0 :(得分:1)

您可以将自定义titleView添加到导航项目中,并在其中放置一个偏离中心的UILabel来保存您的标题。另一种更简单的方法可能是在标题的末尾添加一个或两个空格字符,如果这样可以为您提供所需的位移量。

答案 1 :(得分:1)

您的代码

- (void) customNavBarTitleWithText:(NSString *) text andFontsize:(float) fontsize
{
    // Custom nav bar back button
    UIImage *img = [UIImage imageNamed:@"back_btn.png"];
    UIButton *backbtn = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, img.size.width, img.size.height)];
    [backbtn setImage:img forState:UIControlStateNormal];
    [backbtn addTarget:self action:@selector(backBtnClicked) forControlEvents:UIControlEventTouchUpInside];
    UIBarButtonItem *backBarBtn = [[UIBarButtonItem alloc] initWithCustomView:backbtn];
    [self.navigationItem setLeftBarButtonItem:backBarBtn];

    //Custom nav bar title
    UILabel *label = [[UILabel alloc] initWithFrame:CGRectZero];
    label.backgroundColor = [UIColor clearColor];
    label.font = [UIFont boldSystemFontOfSize:fontsize];
    label.shadowColor = [UIColor colorWithWhite:0.0 alpha:0.5];
    label.textAlignment = NSTextAlignmentCenter;

    // Use UITextAlignmentCenter for older SDKs.
    label.textColor = [UIColor whiteColor]; // change this color
    self.navigationItem.titleView = label;
    label.text = text;
    label.lineBreakMode = NSLineBreakByWordWrapping;
    label.numberOfLines = 0;
    [label sizeToFit];

    // Set nav bar background image
    [self.navigationController.navigationBar setBackgroundImage:[UIImage imageNamed:@"top_bar_bg.png"] forBarMetrics:UIBarMetricsDefault];
  }

在那里:

 label.textAlignment = NSTextAlignmentCenter;

你可以使用另一种模式:NSTextAlignmentLeft,NSTextAlignmentRight,NSTextAlignmentJustified等。

希望它适合你!

相关问题