カスタム フォントを使用するアプリを開発していますが、異常なクリッピングが発生しています。問題はフォント自体にあると思いますが、それを修正する方法がないため、アプリ内で回避するための解決策を考え出す必要があります。
私はナビゲーションバーのタイトルにフォントを使用しています。これが起こっていることです:
クリッピングが発生している理由であるベースラインからフォントが高すぎることがわかります。
標準のナビゲーションバーのタイトルを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];
これは、ラベルを本来あるべき高さの 2 倍にして、テキストが完全に見えるようにしたためです。
ただし、これの問題は、位置が低すぎることです (navigationBar の外)。以下のように...
これを修正する方法、またはこれを回避する別の方法さえ考えられません。フレームの原点の高さをオーバーライドしようとしましたが、これは何もしません。
誰でもこれについて何か助けを提供できますか?