Подтвердить что ты не робот

IOS - iOS 7 UITextView медленный после ввода большого количества текста

У меня возникают проблемы с замедлением, которое происходит в UITextView на iOS 7 при наборе текста. Я поместил трассировщик в NSLayoutManager и определил, что drawGlyphsForGlyphRange работает N * 2 раза, где N - количество раз, когда ваши строки обернуты словами.

Вот пример кода:

https://github.com/philipkd/UITextViewSlow

Чтобы воспроизвести проблему, запустите ее на iPad и прикрепите физическую клавиатуру. Сбросьте буквы и пробел в течение примерно 15 секунд, и обратите внимание, что это замедляется. Затем, когда вы пытаетесь ввести нормально, это очень медленно. Это крайний пример, но если вы просто попробуете ввести два абзаца с разумной скоростью, он застрянет.

Это не проблема с UITextView на iOS 6.

4b9b3361

Ответ 1

Отключите Обновление фонового приложения в Общие настройки. Кроме того, избавиться от NSLog - они замедляют работу над тем, что требуется для печати. ​​

Я смог воспроизвести эффект замедления на iPad под IOS7. На самом деле у IOS6 не было Обновление фонового приложения.

Я полагаю, что Apple нацелена на топ линейных моделей, все остальные должны корректироваться.

Ответ 2

Является ли замедление при подключении (отладка Xcode) вашего ipad на macbook/iMac? Если да, попробуйте отключить кабель и повторите попытку с отсоединенным кабелем, посмотрите, замедляется ли он или нет. Если нет, то это происходит только при отладке процесса. (Это просто моя догадка, так как я не являюсь владельцем внешней клавиатуры)