Обновите Позицию Прокрутки UITextView по iPhone

Обновленный: C++ 11 принес типы от TR1 официально в стандарт:

  • долгое длинное целое
  • неподписанное долгое длинное целое

И "размерные" типы от <cstdint>

  • int8_t
  • int16_t
  • int32_t
  • int64_t
  • (и неподписанные дубликаты).

Плюс Вы доберитесь:

  • int_least8_t
  • int_least16_t
  • int_least32_t
  • int_least64_t
  • Плюс неподписанные дубликаты.

Эти типы представляют самые маленькие целые типы, по крайней мере, с конкретным количеством битов. Аналогично существуют "самые быстрые" целые типы, по крайней мере, с конкретным количеством битов:

  • int_fast8_t
  • int_fast16_t
  • int_fast32_t
  • int_fast64_t
  • Плюс неподписанные версии.

то, Что "быстро" означает, во всяком случае, до реализации. Это не должно быть самым быстрым во всех целях также.

10
задан angelfilm entertainment 27 August 2009 в 21:43
поделиться

4 ответа

По умолчанию, вы имеете в виду прокрутку вверх? Если так, то вы на правильном пути. Попробуйте

[myTextView scrollRangeToVisible:NSMakeRange(0, 0)];
27
ответ дан 3 December 2019 в 13:27
поделиться

Я обнаружил, что если сначала очистить UITextView, а затем применить новый текст, он автоматически «прокрутится» обратно наверх.

myTextView.text = @"";
myTextView.text = theRealTextContent;
8
ответ дан 3 December 2019 в 13:27
поделиться

Ни один из этих подходов не сработал удовлетворительно для меня.

  • scrollRangeToVisible производит тонны визуальных артефактов (много прокрутки при переключении между большими строками), и фактически работает только при отложенном вызове через некоторое время (я использовал 0.1 секунды) после изменения содержимого, а не напрямую, как подразумевает ответ Shaggy Frog.

  • установка текста на @"" перед установкой нового содержимого не помогла, даже с задержкой.

Создается впечатление, что после ввода UITextView он навсегда остается в этом режиме, когда установка нового содержимого вызывает раздражающие артефакты прокрутки. Я также пробовал установить SelectionRange в начало UITextView, но это не помогло. Отправка сообщения resignFirstResponder перед установкой нового содержимого тоже не помогла.

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

Мой опыт с OS3.2 (симулятор ipad)

1
ответ дан 3 December 2019 в 13:27
поделиться
[textview setScrollEnabled:YES];
textview.text = yourText;
[textview setScrollEnabled:NO];
5
ответ дан 3 December 2019 в 13:27
поделиться
Другие вопросы по тегам:

Похожие вопросы: