1

カスタム フォントを使用するアプリを開発していますが、異常なクリッピングが発生しています。問題はフォント自体にあると思いますが、それを修正する方法がないため、アプリ内で回避するための解決策を考え出す必要があります。

私はナビゲーションバーのタイトルにフォントを使用しています。これが起こっていることです:

ナビゲーションバーが壊れている

クリッピングが発生している理由であるベースラインからフォントが高すぎることがわかります。

標準のナビゲーションバーのタイトルを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 の外)。以下のように...

立入禁止で

これを修正する方法、またはこれを回避する別の方法さえ考えられません。フレームの原点の高さをオーバーライドしようとしましたが、これは何もしません。

誰でもこれについて何か助けを提供できますか?

4

2 に答える 2

2

ラベルと同じ幅であるが、UINavigationBar (46 ピクセル?) よりも高くないコンテナ UIView を作成します - 高さ 36 ポイントとしましょう。このコンテナー ビューの「clipsToBounds」を YES に設定します。このコンテナー ビューにラベルを追加し、コンテナー ビューを titleView にします。

于 2012-08-21T12:45:25.940 に答える
0

絵コンテですか?ナビゲーション タイトルのベースラインの配置を調整できる場合があります。

それ以外に、フォントをインストールして絵コンテで選択してみましたか?

それでも問題が解決しない場合は、フォントに問題がある可能性があると思います。div を含む簡単な html ページを設定して、フォントに問題があるかどうかを確認してみてください。

また、ここで何かを使用できるかもしれません:プログラムで UIButton のサイズをテキスト サイズに変更し、適切なパディングを維持する方法は?

于 2012-08-21T11:03:41.647 に答える