一个初学者的头痛:一旦键盘被解除,我正试图滚动到我的UITextView的顶部。我试图提取答案from here,但我担心它没有多大帮助。
我以为我用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];
}
答案 0 :(得分:5)
您创建的范围从-1开始!您可以按如下方式创建范围,这样更容易:
NSRange range = NSMakeRange(0, 1);
此范围从索引0(第一个字符)开始,并展开超过1个字符。
答案 1 :(得分:-1)
我找到了这个答案,关于将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];