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

Ios 无法在导航栏中居中显示标题文本,ios,Ios,我无法使显示在导航栏中的标题文本居中。通常,但也特别是如果我添加了一个左栏按钮项,则标题文本将向右移动 我有一个分段控件,根据用户选择的分段,标题文本可以更改,其中一个分段会出现一个左栏按钮,如果用户选择另一个分段,则会消失。添加标题的代码为: - (void) setHeader { UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 320, 44)]; switch (self.filterType) {

我无法使显示在导航栏中的标题文本居中。通常,但也特别是如果我添加了一个左栏按钮项,则标题文本将向右移动

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

- (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设置为视图的中心,或将其设置为导航栏的中心,但这些设置都没有任何区别。

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

让我们看一个屏幕截图。您能解释一下如何通过“后退”按钮获得宽度吗?