ios – 在UINavigationBar TitleView中垂直居中标签

我没有太多运气将我正在添加到UINavigationBar上的TitleView的标签垂直居中.你可以在下面看到它的样子.

这是我添加标签的方式:

UILabel *titleLabel = [[UILabel alloc] init];
titleLabel.text = NSLocalizedString(@"activeSessionsTitle",@"");
titleLabel.font = [Util SETTING_NEO_HEADER_FONT];
titleLabel.textColor = [UIColor whiteColor];
titleLabel.backgroundColor = [UIColor clearColor];
titleLabel.textAlignment = UITextAlignmentCenter;
titleLabel.shadowColor = [UIColor colorWithRed:0.0f/255.0f green:0.0f/255.0f blue:0.0f/255.0f alpha:0.25f];
titleLabel.shadowOffset = CGSizeMake(0.0f,-1.0f);
[titleLabel sizeToFit];

super.navigationItem.titleView = titleLabel;

我认为它之所以这样做是因为我使用的实际字体有些奇怪 – 因为我必须在按钮内部进行大量重新定位等等.除了导航栏,我已经能够解决所有问题.

解决方法

打开一个旧问题,但我发现这非常有用.

iOS 5允许您使用[UINavigationBar外观],这非常适合更改标题栏的标题视图,而无需自定义UIView:

[[UINavigationBar appearance] setTitleTextAttributes:
         [NSDictionary dictionaryWithObjectsAndKeys:
          [UIColor redColor],UITextAttributeTextColor,[UIColor colorWithRed:0.0 green:0.0 blue:0.0 alpha:0.8],UITextAttributeTextShadowColor,[NSValue valueWithUIOffset:UIOffsetMake(0,-1)],UITextAttributeTextShadowOffset,[UIFont fontWithName:@"HelveticaNeue" size:25.0f],UITextAttributeFont,nil]];

有时,根据您使用的UIFont,标题视图可能会垂直关闭.

要解决此问题,您可以使用:

[self.navigationBar setTitleVerticalPositionAdjustment:(float) forBarMetrics:UIBarMetricsDefault];

(float)是将titleView向下推的正值,以及用于推动titleView的负值.

我希望这有帮助.

相关文章

当我们远离最新的 iOS 16 更新版本时,我们听到了困扰 Apple...
欧版/美版 特别说一下,美版选错了 可能会永久丧失4G,不过只...
一般在接外包的时候, 通常第三方需要安装你的app进行测...
前言为了让更多的人永远记住12月13日,各大厂都在这一天将应...