我正在开发一个使用自定义字体的应用程序,但我遇到了一些不寻常的剪辑。我认为问题出在字体本身,但我无法解决这个问题,所以我需要想出一个解决方案来在应用程序中解决它。
我正在使用导航栏标题的字体,这是发生了什么:
您可以看到字体距离基线太高,这就是发生剪裁的原因。
我设法找到了一个几乎合适的解决方案,用 UILabel 替换标准的导航栏标题,将其插入到导航栏的titleView
.
UILabel *navTitle = [[UILabel alloc] init];
navTitle.frame = CGRectMake(0,0,190,40);
navTitle.text = @"My Title Text";
navTitle.font = [UIFont fontWithName:AGENDA_TYPE_FONT size:17];
navTitle.backgroundColor = [UIColor clearColor];
navTitle.textColor = [UIColor colorWithHue:0.356 saturation:0.457 brightness:0.288 alpha:1.00];
navTitle.shadowColor = [UIColor colorWithRed:1 green:1 blue:1 alpha:0.50];
navTitle.shadowOffset = CGSizeMake(0, 1);
navTitle.textAlignment = UITextAlignmentCenter;
// Set label as titleView
self.navigationItem.titleView = navTitle;
// Shift the title down a bit...
[self.navigationController.navigationBar setTitleVerticalPositionAdjustment:9 forBarMetrics:UIBarMetricsDefault];
之所以可行,是因为我将标签设置为应有的高度的两倍,从而使文本完全进入视野。
不过,问题在于它现在位置太低了(在导航栏之外。如下所示......
我想不出解决这个问题的方法,甚至想不出另一种解决方法。我尝试过覆盖框架原点高度,但这无济于事。
任何人都可以提供任何帮助吗?