14
Xcode 6サイズクラスのカスタムフォントサイズ設定がカスタムフォントで正しく機能しない
Xcodeの6は、新しい機能があるフォントとフォントサイズではUILabel、UITextFieldと、UIButton右のストーリーボードで、現在のデバイス構成のサイズクラスに基づいて自動的に設定することができます。たとえば、UILabel「任意の幅、コンパクトな高さ」(横長のiPhoneなど)構成ではフォントサイズ12を使用し、「通常の幅、通常の高さ」構成(iPadなど)ではサイズ18を使用するように設定できます。詳細については、こちらをご覧ください。 developer.apple.com/size_class デバイスの構成に基づいて、UI機能にプログラムで異なるフォントを設定する必要がなくなるため、これは理論的には優れた機能です。現在、デバイスの種類に基づいてフォントを設定する条件付きコードがありますが、明らかに、アプリ全体でプログラム的にフォントを設定する必要があります。そのため、最初はこの機能に本当に興奮していましたが、実際の使用には深刻な問題(おそらくバグ)があることがわかりました。SDK 8に基づいてビルドし、iOS 8の最小展開ターゲットを設定しているため、これはiOSの古いバージョンとの互換性とは関係ありません。 問題は次のとおり です。サイズクラスごとに異なるフォントサイズを設定し、iOSが提供する「システム」フォントを使用すると、すべてが期待どおりに機能し、フォントサイズはサイズクラスに基づいて変化します。アプリケーションから提供されたカスタムフォントを使用し(はい、プログラムで機能するため、アプリケーションバンドルで正しく設定しています)、カスタムフォントをXCode 6ストーリーボードのラベルに設定すると、期待どおりに機能します。しかし、ストーリーボードでさまざまなサイズのクラスにさまざまなサイズのカスタムフォントを使用しようとすると、突然機能しなくなります。構成の唯一の違いは、選択したフォントです(カスタムフォントとシステムフォント)。代わりに、すべてのフォントがサイズクラスに関係なく、デフォルトサイズのデフォルトシステムフォントとしてデバイスとシミュレーター(そして、ストーリーボードで指定された実際のフォントをシステムフォントに置き換えていることをデバッガーを介して確認しました)。したがって、基本的に、サイズクラス機能はカスタムフォントでは機能しないようです。また、興味深いことに、ビューコントローラーのXCode 6の[プレビュー]ペインでカスタムフォントが実際に適切に表示およびサイズ調整されます。実際のiOSシステムで実行している場合にのみ機能しなくなります(正しく構成されていると思います)。 。 複数の異なるカスタムフォントを試してみましたが、どのフォントでも機能しないようですが、代わりに「システム」を使用すると、常に機能します。 とにかく、Xcode 6でこの問題を見た人はいますか? これがiOS 8、Xcode、または何かのバグかどうかに関するアイデア 私は間違っていますか? 言ったように、私が見つけた唯一の回避策は、私がiOSの約3つのバージョンで行ったように、プログラムでフォントを設定し続けることです。 しかし、カスタムフォントで機能させることができれば、この機能を使用できるようになりたいです。システムフォントの使用は、私たちのデザインには受け入れられません。 追加情報: Xcode 8.0以降、バグが修正されました。