zoukankan      html  css  js  c++  java
  • UITextView自动滚动的解决方案

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

     

  • 相关阅读:
    Request的方法演示
    Request内置对象
    Servlet运行机制
    Servlet生命周期
    Servlet概念与配置
    http协议
    数据库连接池
    代码管理git托管到码云(github)开源中国
    事务
    类的执行先后顺序
  • 原文地址:https://www.cnblogs.com/nasa/p/1851505.html
Copyright © 2011-2022 走看看