web-dev-qa-db-ja.com

カスタムUIFontベースラインがシフトしました

カスタムUIFontに問題があります。それらのうち6つをロードします(regular/bold/regularItalic/boldItalicのフォントA、condensed/condensedSlantedバリアントのフォントB)。

ただし、レンダリングすると次のようになります。 enter image description here

最初の2行は問題ありませんが、最後の行はベースラインの問題を示しています。

FontLabでフォントのUPM、ascender、descender、x-heightを変更して、最初のフォントの値(正しくレンダリングされる)と一致するように変更しようとしましたが、役に立ちませんでした。フォント形式をOTFからTTFに変換しようとしましたが、うまくいきません。何をしようとしても、常にこのようにレンダリングされます。

誰もがこれを経験していますか?

44
Cyrille

ここ または ここ あなたはあなたのための解決策を見つけることができます。それはすべてベースラインについてです。

El CapitanでのApple Fonts Utilityのインストールに問題があります。詳細は https:// Apple .stackexchange.com/questions/211138/Apple-font-tools-cannot-install-in-macbook-pro-el-capitan 回避策として。

これらをフォントで編集するには、Apple Font Tool Suiteをダウンロードする必要があります。これをインストールしたら、ターミナルを開き、フォントを含むディレクトリに移動する必要があります。その後、Enter次のコマンド:

  1. ftxdumperfuser -t hhea -A d font.ttfこれはfont.hhea.xmlというファイルを作成し、この新しいファイルをテキストエディターで開いて、アセンダーとディセンダーの値を調整します。一般的に、フォントが低すぎる場合は、アセンダーを減らし、ディセンダーを増やします。編集して保存したら、ターミナルに次のコマンドを入力してフォントファイルを再構築します。

  2. ftxdumperfuser -t hhea -A f font.ttfこれで、アプリケーションでfont.ttfファイルを使用できます。それでもフォントが正しくない場合は、満足するまで上記の手順を繰り返します。

または、次のようにNSBaselineAttributeNameを簡単に変更できます。

NSAttributedString *attrStr = [[NSAttributedString alloc] initWithString:@"a string"
                              attributes:@{ NSBaselineOffsetAttributeName : @-13 }];
38
art-divin

こんにちは私もそのような問題に直面しましたTitle Content EdgeUIButton

したがって、このフォントをUIButtonに使用している場合、きっとこれを使用できます。

enter image description here

これがあなたを助けることを願っています。

3
Mrunal

私が見つけた別の興味深い解決策は次の投稿から来ています: http://www.andyyardley.com/2012/04/24/custom-ios-fonts-and-how-to-fix-the-vertical-position -問題/

だから、彼がコメントの1つでそこに言っているように、これがあなたのフォントに当てはまるかどうかを確認する必要があります:

私のソリューションは実際にカスタムフォントを修正してiOSのレンダリングエンジンで動作するようにし、変更せずに標準フォントの直接の代替として使用できるようにします。

そして、彼はそれをどのように行うのですか?

基本的に彼は、外部のAppleツールを使用してフォントのメトリックを編集することを提案します( https://developer.Apple.com/library/ios/documentation/StringsTextFonts /Conceptual/TextAndWebiPhoneOS/CustomTextProcessing/CustomTextProcessing.html#//Apple_ref/doc/uid/TP40009542-CH4-SW66

これらをフォントで編集するには、Apple Font Tool Suiteをダウンロードする必要があります。これをインストールしたら、ターミナルを開き、フォントを含むディレクトリに移動する必要があります。その後、Enter次のコマンド:

ftxdumperfuser -t hhea -A d font.ttf

これによりfont.hhea.xmlというファイルが作成され、この新しいファイルがテキストエディターで開かれ、アセンダーとディセンダーの値が調整されます。一般的に、フォントが低すぎる場合は、アセンダーを減らし、ディセンダーを増やします。編集して保存したら、ターミナルに次のコマンドを入力してフォントファイルを再構築します。

ftxdumperfuser -t hhea -A f font.ttf

これで、アプリケーションでfont.ttfファイルを使用できます。それでもフォントが正しくない場合は、満足するまで上記の手順を繰り返します。

2
Nech

ところでApple Font Tool Suiteはあなたを助けることができる唯一のプログラムではありません。そのため、macOの仮想コピーをインストールしたくない場合は、FontForge for Windowsを使用してアセンダーで遊ぶことができますそしてdescender:element-> font info、次にOS/2 tab、そしてmetricsそして最後にフォントを生成するときに「Apple」チェックボックスをチェックすることを忘れないでください。

0
Able

uITextView/UITextLabelのプロパティ 'thLabel.contentVerticalAlignment = UIControlContentVerticalAlignmentCenter;'を見てください。

これは垂直方向の配置を定義します。似たようなケースで数日前に役に立った

0
pmk

これらのフォントは、Adobe IllustratorやCorelDrawなどのベクターソフトウェアで並べて確認する必要があります。フォントがこれらのソフトウェアにも同じようにオフセットされてレンダリングされる場合、それはフォント自体に関係しています。つまり、フォントは、フォントファイル内でそのようなピクセルオフセットで作成される可能性があります。したがって、UIButtonやUITextFieldなどの.xibパラメータにこのような変更を加える必要はありません。

可能であれば、ここでフォントファイルを共有してください。

0
Ralph