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的负值.

我希望这有帮助.

相关文章

UITabBarController 是 iOS 中用于管理和显示选项卡界面的一...
UITableView的重用机制避免了频繁创建和销毁单元格的开销,使...
Objective-C中,类的实例变量(instance variables)和属性(...
从内存管理的角度来看,block可以作为方法的传入参数是因为b...
WKWebView 是 iOS 开发中用于显示网页内容的组件,它是在 iO...
OC中常用的多线程编程技术: 1. NSThread NSThread是Objecti...