思路:UIView加载完成3后,用NSTimer结合setContentOffset将UITextView向下滚动1像素。在滚动到底部的时候停止NSTimer。每当手动滚动UITextView前销毁NSTimer,滚动后重新创建NSTimer。
NSTimer *timer; - (void)viewDidLoad { [self performSelector:@selector(resetText) withObject:nil afterDelay:3.0f]; } - (void)resetText { [timer invalidate]; timer = nil; timer = [NSTimer scheduledTimerWithTimeInterval: 0.06 target: self selector:@selector(onTick:) userInfo: nil repeats:YES]; } - (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView { [timer invalidate]; timer = nil; NSLog(@"scrollViewWillBeginDragging"); [self performSelector:@selector(resetText) withObject:nil afterDelay:3.0f]; } - (void) onTick:(NSTimer*)theTimer { CGPoint pt = [textView contentOffset]; CGFloat n = pt.y + 1; [textView setContentOffset:CGPointMake(pt.x, n)]; if (n> (textView.contentSize.height-textView.bounds.size.height)) { [theTimer invalidate]; theTimer = nil; [timer invalidate]; timer = nil; } }
最后 不要忘了实现
UIScrollViewDelegate