1. ホーム
  2. ios

[解決済み] UIButtonのカスタムフォントの垂直配置

2022-09-06 10:37:30

質問

私は UIButton で、カスタムフォントを使用しており、ビューのロード時に設定されます。

- (void)viewDidLoad
{
    [super viewDidLoad];    
    self.searchButton.titleLabel.font = [UIFont fontWithName: @"FONTNAME" size: 15.0 ];
}

問題は、フォントが中央の線から浮き上がって見えることです。この行をコメントアウトすると、デフォルトのフォントは縦方向にうまく中央揃えで表示されます。しかし、カスタム フォントに変更すると、垂直方向の配置が崩れます。

カスタムフォントを使用したテーブルセルでも同じ問題が発生しています。

カスタムフォントが他のフォントほど高くないことを、どこかでビューに伝える必要があるのでしょうか?

EDIT: 私が使用しているフォントが Windows TrueType フォントであることに今気づきました。Mac の TextEdit では問題なく使用できますが、私のアプリケーションでは配置に問題があるだけです。

どのように解決するのですか?

同じような問題は、次のサイトで議論されました。 UILabel でカスタム インストールされたフォントが正しく表示されない . 解決策は示されていません。

UILabel、UIButton などで同じ問題があった私のカスタム フォントに対して機能した解決策は次のとおりです。フォントの問題は、その ascender プロパティがシステム フォントの値に比べて小さすぎるという事実であることが判明しました。アセンダとは、フォントの文字の上にある縦の空白のことです。フォントを修正するためには、次のものをダウンロードする必要があります。 アップルフォントツールスイート コマンドラインユーティリティをダウンロードする必要があります。そして、あなたのフォントを手に取り、次のことを行ってください。

~$ ftxdumperfuser -t hhea -A d Bold.ttf

これは Bold.hhea.xml . これをテキストエディタで開いて ascender 属性の値を大きくしてください。あなたにとって最適な値を見つけるには、少し実験する必要があります。私の場合、750から1200に変更しました。次に、次のコマンド ラインでユーティリティを再度実行し、変更を ttf ファイルにマージします。

~$ ftxdumperfuser -t hhea -A f Bold.ttf

そして、出来上がったttfフォントをアプリで使用するだけです。

OS X El Capitan

Apple Font Tool Suite インストーラは、以下の理由により OSX El Capitan 上で動作しなくなりました。 SIP により、保護されたディレクトリにバイナリ ファイルをインストールしようとするためです。 手動で ftxdumperfuser . まず、dmg からローカルディレクトリに pkg をコピーし、その後で OS X Font Tools.pkg と共に

~$ xar -xf OS\ X\ Font\ Tools.pkg

ここで、フォルダの fontTools.pkg

~$ cd fontTools.pkg/

でペイロードを取り出す。

~$ cat Payload | gunzip -dc | cpio -i

ここで ftxdumperfuser のバイナリは現在のフォルダにあります。に移動させることができます。 /usr/local/bin/ とすることで、ターミナルアプリケーションの中のすべてのフォルダで使用できるようになります。

~$ mv ftxdumperfuser /usr/local/bin/