scrollRangeToVisible: как прокрутить к началу UITextView - PullRequest
3 голосов
/ 11 марта 2011

Головная боль новичка: я пытаюсь прокрутить до самого верха UITextView, как только клавиатура закрывается.Я пытался извлечь ответ отсюда , но, боюсь, это не сильно помогло.

Я думал, что делаю это с scrollRectToVisible, но ничего не происходит.Тогда я подумал, что должен попробовать scrollRangeToVisible, но это сломало мое приложение ... Я уверен, что сделал что-то невероятно огорчительное и неправильное.Я был бы очень рад, если бы кто-нибудь мог помочь:

- (IBAction)hideKeyboard:(id)sender {

//[textView scrollRectToVisible:CGRectMake(0, 0, 0, 0) animated:YES];

NSRange range = NSMakeRange(textView.text.length - (textView.text.length+1),1);
[textView scrollRangeToVisible:range];

textView.scrollEnabled = NO;
[textView resignFirstResponder];}

РЕДАКТИРОВАТЬ:

обновленный код для всех, кто сталкивается с подобной проблемой:

- (IBAction)hideKeyboard:(id)sender {

//textView.scrollEnabled = NO;
[textView resignFirstResponder];

NSRange range = NSMakeRange(0,1);
[textView scrollRangeToVisible:range];

}

Ответы [ 2 ]

5 голосов
/ 11 марта 2011

Диапазон, который вы создаете, начинается с -1!Вы можете создать свой диапазон следующим образом, это проще:

NSRange range = NSMakeRange(0, 1);

Этот диапазон начинается с индекса 0 (первый символ) и распространяется на 1 символ.

0 голосов
/ 11 марта 2011

Я нашел этот ответ о прокрутке textView наверх, прежде чем здесь, на этом форуме, я не нашел его сейчас. Но это был ответ: Вы просто используете этот метод, чтобы остановить прокрутку:

- (void)killScroll :(UIScrollView*)scrollView 
{
    CGPoint offset = scrollView.contentOffset;
    offset.x -= 1.0;
    offset.y -= 1.0;
    [scrollView setContentOffset:offset animated:NO];
    offset.x += 1.0;
    offset.y += 1.0;
    [scrollView setContentOffset:offset animated:NO];
}

и после вызова вы используете известный метод:

[yourTextView scrollsToTop];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...