Core Text Performance

Я вижу некоторые проблемы с производительностью Core Text при его запуске на оригинальном iPad.

Я создал редактируемый просмотр с использованием Core Text и протокола UITextInput , который основан на OmniGroup OUIEditableFrame .

Когда в представлении достаточно текста, скажем, 180 строк, при вводе / вводе сильно задерживается сзади и одно нажатие на клавишу обычно занимает 1-2 секунды.

Используя инструменты с симулятором, я смог сузить проблему и выяснить, на что уходит так много времени. Оказывается, это из-за того, что я перерисовываю кадр при каждом нажатии клавиши, так много времени занимает вызов CTFramesetterCreateWithAttributedString и CTFramesetterCreateFrame .

Я должен перерисовывать при каждом нажатии клавиши, чтобы текст обновляется, это означает вызов CTFramesetterCreateWithAttributedString и CTFramesetterCreateFrame .

Кто-нибудь еще сталкивался с этой проблемой, и если да, то как они ее решили?


EDIT :

Провел дальнейшее исследование и выяснилось, что если у атрибутированной строки нет атрибутов, все отрисовывается намного быстрее и без задержек. Изменение шрифта, цвета или стиля абзацев замедляет его. Есть идеи, связано ли это с этим?

17
задан Joshua 19 May 2011 в 18:28
поделиться