Я вижу некоторые проблемы с производительностью Core Text, когда он запускается на оригинальном iPad.
Я создал редактируемое представление, используя Core Text и протокол UITextInput
, основанный на OUIEditableFrame
OmniGroup..
Если в представлении достаточно текста, скажем, 180 строк, набор текста / ввод данных значительно отстает, а одно нажатие клавиши обычно занимает 1-2 секунды.
Использование инструментов сНа симуляторе мне удалось сузить проблему и выяснить, что занимает столько времени.Оказывается, это потому, что я перерисовываю фрейм с каждым нажатием клавиши, так много времени уходит на вызовы CTFramesetterCreateWithAttributedString
и CTFramesetterCreateFrame
.
Я должен перерисовывать с каждым нажатием клавиши, чтобы текст обновлялся,это значит звонить CTFramesetterCreateWithAttributedString
и CTFramesetterCreateFrame
.
Кто-нибудь еще сталкивался с этой проблемой, и если да, то как они ее обошли?
РЕДАКТИРОВАТЬ:
Провел дальнейшие исследования и выяснил, что если приписанная строка не имеет атрибутов, то все отрисовывается намного быстрее и без каких-либо задержек.Изменение шрифта, цвета или стиля абзаца замедляет его.Любая идея, если это может иметь какое-то отношение к этому?