2011-10-30 6 views
6

Core Textを使用してテキストを表示するiOSテキストエディタのサンプルプロジェクトであるAppleのSimpleTextInput sample codeを見ています。これは素晴らしいことです。AppleのSimpleTextInputサンプルコードが非効率的な理由

しかし、そのreadmeドキュメントは言う:

このサンプルコードは、テキストエディタのためのテンプレートと考えるのではなく、既存のテキストエディタにテキスト入力システムをバインドする方法の例として、するべきではありません。プロジェクトのCoreTextの使用は単純で非効率的です。それは左から右へのテキストレイアウトだけを扱うものであり、いかなるテキストエディタにとっても良いテンプレートではありません。これは、システムキーボード(テキスト入力システム)を既存のテキストエディタにバインドする方法を説明するためのものです。

については興味がありますこのテキストエディタは非効率的です。それは設計上の何か基本的なものですか?シンプルな微調整が改善できるものですか? UITextViewには本当に精巧なキャッシュアルゴリズムが隠されているかもしれません。だから、問題はSimpleTextInputがそれらを欠いていることでしょうか?

答えて

3

AppleのSimpleTextInput sample codeは、すべてを一度に単一CTFrameRefオブジェクト内のドローテキストを使用しています:これはコアテキストはわずか1つのブロックですべてを描画するために得ることができるよう、最も簡単なオプションです。これの唯一の欠点は、すべてのキーストロークでCTFrameRefを再作成し、編集するたびにすべてのテキストを再描画すると非効率になることがあるということです。特に、多くのテキストと多くの属性がある場合、

コアテキストエディタを実装するより効率的な方法については、Rich Text Editing : The choicesを参照してください。行で描画する

0

私はそれを見ました、それはすべての方法を実装していない、それは彼らがそれを言っている理由かもしれません。あなたのプロジェクトと必要性に応じて、それを使用して展開することができます。

関連する問題