UITextView自动滚动的解决方案

简介: 思路:UIView加载完成3后,用NSTimer结合setContentOffset将UITextView向下滚动1像素。在滚动到底部的时候停止NSTimer。每当手动滚动UITextView前销毁NSTimer,滚动后重新创建NSTimer。

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

 

相关文章
|
8月前
|
监控
如何解决UICollectionView不能下拉刷新问题
如何解决UICollectionView不能下拉刷新问题
123 0
iOS-UITextView设置行间距,内容颜色(变相设置类似UITextField的placeholder)
iOS-UITextView设置行间距,内容颜色(变相设置类似UITextField的placeholder)
390 0
iOS-UITextView设置行间距,内容颜色(变相设置类似UITextField的placeholder)
UIWebView 自适应高度
UIWebView 自适应高度
57 0
|
iOS开发
iOS ScrollView嵌套tableview左右滑动时禁止上下滑动
iOS ScrollView嵌套tableview左右滑动时禁止上下滑动
2150 0
TableView自动滚动到底部
TableView自动滚动到底部
220 0
|
iOS开发 开发者
iOS开发中UITableViewCell点击时子视图背景透明的解决方法
iOS开发中UITableViewCell点击时子视图背景透明的解决方法
234 0
iOS开发中UITableViewCell点击时子视图背景透明的解决方法