[英]Issue with UINavigationBar title alignment
我在导航控制器中更改标题的字体时遇到问题。
这是我的代码(来自我的UINavigationController的子类):
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view.
NSDictionary * attributes = @{UITextAttributeTextColor :[UIColor whiteColor],
UITextAttributeFont :[UIFont fontWithName:@"Blanch" size:50],
};
self.navigationBar.titleTextAttributes = attributes;
CGFloat verticalOffset = -8;
[[UINavigationBar appearance] setTitleVerticalPositionAdjustment:verticalOffset forBarMetrics:UIBarMetricsDefault];
UIImage *image = [UIImage imageNamed:NAVBAR_IMAGE];
[self.navigationBar setBackgroundImage:image forBarMetrics:UIBarMetricsDefault];
}
看起来是这样的:
如果我注释掉设置字体的行,这就是它的样子(与垂直偏移一样):
垂直偏移存在的唯一原因是我认为它可能已经解决了问题。 我不需要它,现在已将其注释掉,但是它不会更改输出-在NavBar上它看起来还是一样。
任何想法如何解决这个问题? 我认为自定义字体可能有很多行距,我想可能是问题所在。
我一直在试图找到一种方法来更改标题的原点/高度/基线对齐,但是看不到任何一种方法来执行这些操作。 任何想法如何解决这个问题?
创建一个容器UIView
,该容器的宽度与标签的宽度相同,并且与UINavigationBar
高度相同(约46像素?)。 将此容器视图上的clipsToBounds
设置为YES。 现在,将标签添加到此容器视图,并使该容器视图成为titleView。
设置ios5的Navigationbar图像
if ([self.navigationController.navigationBar respondsToSelector:@selector( setBackgroundImage:forBarMetrics:)]){
[self.navigationController.navigationBar setBackgroundImage:[UIImage imageNamed:@"YOUR_NAVIGATION_BAR_IMAGE"] forBarMetrics:UIBarMetricsDefault];
}
设置ios6的Navigationbar图像
if([[UINavigationBar appearance] respondsToSelector:@selector( setBackgroundImage:forBarMetrics:)]){
[[UINavigationBar appearance] setBackgroundImage:[UIImage imageNamed:@"YOUR_NAVIGATION_BAR_IMAGE"] forBarMetrics:UIBarMetricsDefault];
然后,在标题上的导航栏中心创建标签。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.