我没有太多运气将我正在添加到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]];
要解决此问题,您可以使用:
[self.navigationBar setTitleVerticalPositionAdjustment:(float) forBarMetrics:UIBarMetricsDefault];
(float)是将titleView向下推的正值,以及用于推动titleView的负值.
我希望这有帮助.