#iphone #ios #ios4 #uiscrollview #uitextview
#iPhone #iOS #ios4 #uiscrollview #uitextview
Вопрос:
Я успешно настроил вид прокрутки, который перемещает некоторые текстовые поля и текстовый вид вверх, если они скрыты клавиатурой. Однако, когда текстовое представление получило некоторый текст, который выходит за пределы первой строки, следующие строки явно скрыты клавиатурой. Итак, я ищу трюк для перемещения вверх / вниз по представлению каждый раз, когда новая строка добавляется / удаляется в / из экземпляра UITextView.
Спасибо за помощь,
Стефан
Ответ №1:
Вы можете реализовать
- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text
метод в вашем делегате UITextView, подсчитайте количество новых строк в тексте textviews, подсчитайте, как далеко вам нужно прокручивать, и прокрутите. (Этот метод вызывается каждый раз, когда пользователь вводит символ.)
В качестве альтернативы вы можете пойти более простым путем и прокрутить достаточно далеко, чтобы отобразить всю вашу UITextView
. Если пользователь вводит больше, чем помещается в textview, textview начнет прокручиваться автоматически.
Ответ №2:
Используйте scrollRectToVisible:animated:
или setContentOffset:animated:
— в вашем случае, первое, как в:
[scrollView scrollRectToVisible:textField.frame animated:YES];
Вам также может потребоваться прокрутить содержимое текстового поля до видимого, но я думаю, что это должно произойти автоматически.
Ответ №3:
Итак, если вы скомпилируете предыдущие ответы :
Просто установите свой textView.delegate
as self и свой viewController
as <UITextViewDelegate>
и :
- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text {
[textView scrollRangeToVisible:range];
return YES;
}