Почему пример кода Apple SimpleTextInput неэффективен - PullRequest
6 голосов
/ 30 октября 2011

Я смотрю на пример Apple *1001* SimpleTextInput, который представляет собой пример проекта для текстового редактора iOS, который использует Core Text для отображения текста.Это замечательная вещь.

Но в документе ReadMe написано:

Этот пример кода не следует рассматривать как шаблон для текстового редактора, а скорее как пример того, как связыватьсистема ввода текста в уже существующий текстовый редактор.Использование CoreText в проекте наивно и неэффективно;он работает только с текстовым макетом слева направо и ни в коем случае не является хорошим шаблоном для любого текстового редактора.Это реализация, предназначенная только для иллюстрации того, как привязать системную клавиатуру (то есть систему ввода текста) к некоторому ранее существующему текстовому редактору.

Мне любопытно, как как этот текстовый редактор неэффективен.Это что-то принципиальное в дизайне?Это то, что простые улучшения могут улучшить?UITextView может содержать действительно сложные алгоритмы кэширования;итак, проблема в том, что в SimpleTextInput их нет?

Ответы [ 2 ]

3 голосов
/ 13 марта 2013

Пример кода Apple SimpleTextInput , использует Рисование текста сразу в одном CTFrameRef объекте: Это самые простые варианты, поскольку вы можете получить основной текст, чтобы нарисовать все в одном блок. Единственным недостатком этого является то, что это может быть неэффективно, так как воссоздание CTFrameRef при каждом нажатии клавиши, а перерисовка всего текста при каждом редактировании замедлит работу вашего приложения, особенно если в нем много текста и много атрибутов.

Для более эффективных способов реализации текстового редактора Core читайте Rich Text Editing: варианты выбора topic: Draw line by line .

0 голосов
/ 07 сентября 2012

Я видел это, Он не реализует все методы, может быть, поэтому они говорят это.Зависит от вашего проекта и необходимости, вы можете использовать и расширять его.

...