思路: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