UITextView
aと aUILabel
をカスタム フォントを使用するように設定しました。(これは縦にミラーリングされたモンゴル語フォントですが、効果がわかるように英語のテキストも含めました。) Interface Builder では単語が表示されますが、シミュレーターではほとんどの文字がUITextView
空のボックスになっています。奇妙なことに、UILabel
do の文字はシミュレーターで正しく表示されます。
UITextView
それらを同様に表示するにはどうすればよいですか?
ノート:
- Xcode バージョン 6.3.2 を使用しています。この SO Q&Aから、カスタム フォントは IB の Xcode 6 で動作するはずであることがわかりました。
UITextView
プロジェクトにフォント ファイルを追加し、と の両方のカスタム フォント リストから選択しましたUILabel
。- プロジェクトに「アプリケーションによって提供されるフォント」キーを追加し、
Info.plist
それにカスタムフォントを追加しました。 この質問
UITextView
は非常に似ています(ただし、問題について言及していないため異なりUILabel
ます)。この記事の執筆時点では、その質問の OP は、投票数の多い回答が役に立ったかどうかを示していません。その回答のコードを実行して、フォントが本当にバンドルに含まれていることを確認しました。バンドルに含まれていることを確認する次の結果が得られたため、それでも問題は解決しません。Family : ChimeeWhiteMirrored Font : ChimeeWhiteMirrored
誰かが私の間違いを見たり、他のアイデアを持っていますか?
アップデート
@darkheartfeltの反対票を受け取り、以下の私の回答にコメントした後、何かを見逃したのではないかと考えて、元の問題を再現しました。iOS 9 では、シミュレーターでのフォントの表示が多少異なりますが、基本的な問題は依然として存在します。IB では問題なく表示されますが、シミュレーターでは表示されません。
問題は次のように再現できます (Xcode 7.1.1 を使用)。
- 新しいシングル ビュー プロジェクトを開始します。
- プロジェクトにフォントを追加します (関連する github プロジェクトからダウンロードできます)。
- Info.plist ファイルに、「アプリケーションが提供するフォント」をフォント名「ChimeeWhiteMirrored.ttf」で追加します。
- ターゲットの「Copy Bundle Resources」に ChimeeWhiteMirrored.ttf が含まれていることを確認します。
- をストーリーボードに追加し
UITextView
ます。 - IB 属性インスペクターに次のテキストを貼り付けます。
1-10: one two three four five six seven eight nine ten
- IB Attributes インスペクターで、フォントを Custom に、ファミリーを ChimeeWhiteMirrored に設定します。
これにより、特殊文字の問題が再現されます。以下の回答で説明したように、この問題を解決する唯一の方法は、コードでフォントを設定することです。
import UIKit
class ViewController: UIViewController {
@IBOutlet weak var textView: UITextView!
override func viewDidLoad() {
super.viewDidLoad()
// set custom font
textView.font = UIFont(name: "ChimeeWhiteMirrored", size: (textView.font?.pointSize)!)
}
}
私が間違っているか、何かが欠けている場合は、お知らせください。それまでは、以下の受け入れられた回答を引き続き使用する必要があります。