无法在导航栏中居中标题文本

时间:2012-01-22 23:40:49

标签: ios

我无法将导航栏中显示的标题文本置于居中位置。一般来说,但特别是如果我添加一个左栏按钮项目,则标题文本会向右移动。

我有一个分段控件,根据用户选择的标题文本可以更改的段,并且其中一个段会出现左栏按钮,如果用户选择另一个段,则会消失。添加标题的代码是:

- (void) setHeader
{
    UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 320, 44)];
switch (self.filterType)
{
    case filterx:
        label.text = @"the title":
        break;
    // etc.
}

label.backgroundColor = [UIColor clearColor];
label.font = [UIFont boldSystemFontOfSize:14.0];
label.shadowColor = [UIColor colorWithWhite:0.0 alpha:0.5];
label.textAlignment = UITextAlignmentCenter;
label.textColor =[UIColor whiteColor];
self.navigationItem.titleView = label;  
}

我已经尝试过明确地设置self.navigationItem.titleView.center,或者到视图的中心,或者导航栏的中心,但这些都没有任何区别。

1 个答案:

答案 0 :(得分:0)

可能会发生这种情况,因为可能存在其他视图,例如leftBarButton,backButton或rightBarButton导致此问题。实际上,您正在创建宽度为320.0f的标签,这是navigation bar的完整宽度。您需要从标签宽度中扣除导航栏的其他视图的大小,它将适合您。