5

我试图在我的导航栏中有两个 UILabel 而不是只有一个。

我点击此链接以获取有关如何执行此操作的信息: 导航栏中的 iPhone 标题和副标题

它运作良好,但我无法让我的文本正确居中。它在按钮之间居中,但默认的标题行为是在时间下方居中。

在此处输入图像描述

我在这里看了看,同样的问题,但没有答案: UINavigationBar TitleView with subtitle

我错过了什么?这是我的代码:

CGRect headerTitleSubtitleFrame = CGRectMake(0, 0, 200, 44);
UIView* _headerTitleSubtitleView = [[UILabel alloc] initWithFrame:headerTitleSubtitleFrame];
_headerTitleSubtitleView.backgroundColor = [UIColor clearColor];
_headerTitleSubtitleView.autoresizesSubviews = NO;

CGRect titleFrame = CGRectMake(0, 2, 200, 24);
UILabel *titleView = [[UILabel alloc] initWithFrame:titleFrame];
titleView.backgroundColor = [UIColor clearColor];
titleView.font = [UIFont boldSystemFontOfSize:20];
titleView.textAlignment = NSTextAlignmentCenter;
titleView.textColor = [UIColor whiteColor];
titleView.shadowColor = [UIColor darkGrayColor];
titleView.shadowOffset = CGSizeMake(0, -1);
titleView.text = @"Title";
titleView.adjustsFontSizeToFitWidth = YES;
[_headerTitleSubtitleView addSubview:titleView];

CGRect subtitleFrame = CGRectMake(0, 24, 200, 44-24);
UILabel *subtitleView = [[UILabel alloc] initWithFrame:subtitleFrame];
subtitleView.backgroundColor = [UIColor clearColor];
subtitleView.font = [UIFont boldSystemFontOfSize:13];
subtitleView.textAlignment = NSTextAlignmentCenter;
subtitleView.textColor = [UIColor whiteColor];
subtitleView.shadowColor = [UIColor darkGrayColor];
subtitleView.shadowOffset = CGSizeMake(0, -1);
subtitleView.text = @"Subtitle";
subtitleView.adjustsFontSizeToFitWidth = YES;
[_headerTitleSubtitleView addSubview:subtitleView];

self.navigationItem.titleView = _headerTitleSubtitleView;
4

2 回答 2

10

您应该调整两个框架的宽度。它应该低于 200。试试这个。

CGRect titleFrame = CGRectMake(0, 2, 160, 24);
CGRect subtitleFrame = CGRectMake(0, 24, 160, 44-24);

编辑:左侧的后退按钮更宽,标题视图向右移动。

请查看宽度为 200 像素的图像 在此处输入图像描述

以及宽度为 160px 的图像 在此处输入图像描述

我建议您相应地调整标题视图和标签的宽度。

如果您想了解更多关于后退按钮宽度的信息,请参阅此处的讨论。 所以发布1。

所以发布2。

于 2013-08-20T16:32:11.027 回答
1

你可能会喜欢 UINavigationItem 类中的这个属性。

@property (nonatmic,copy) NSString *prompt

它很优雅。

于 2014-09-15T15:25:48.430 回答