定时器

CADisplayLink:时间间隔比较小(使用时间频率高)的时候用(适合小游戏中开发)

NSTimer:时间间隔比较大的时候调用(适合图片轮放的时候用)


//声明定时器

@property (nonatomic,strong) NSTimer *timer;

/**
* 添加定时器
*/
- (void)addTimer
{
self.timer = [NSTimer scheduledTimerWithTimeInterval:2.0 target:self selector:@selector(nextImage) userInfo:nil repeats:YES];
//NSRunLoop可以优先级处理些定时器(线程优先)
[[NSRunLoop currentRunLoop] addTimer:self.timer forMode:NSRunLoopCommonModes];
}

/**
* 移除定时器
*/
- (void)removeTimer
{
[self.timer invalidate];//设置定时器无效
    self.timer = nil;
}

调用代理时 定时器 事例:


#pragma  mark -代理方法

/**
当scrollView正在滚动就会调用 */
-(void)scrollViewDidScroll:(UIScrollView *)scrollView{
//根据scrollView的滚动位置决定pageControl显示第几页
CGFloat scrollW=self.scrollView.frame.size.width;
int page=(scrollView.contentOffset.x+scrollW*0.5)/scrollW;
self.pageControl.currentPage=page;
} /**
开始拖拽的时候调用
*/ -(void)scrollViewWillBeginDragging:(UIScrollView *)scrollView
{
//停止定时器(一旦定时器停止了,就不能再使用)
[self removeTimer];
} /**停止拖拽的时候调用*/
-(void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate
{
//开启定时器
[self addTimer];
}

最新文章

  1. hadoop---前期准备---屌丝
  2. "Emgu.CV.CvInvoke”的类型初始值设定项引发异常 解决办法
  3. c#连接mysql环境配置
  4. 20145213《Java程序设计》实验三敏捷开发与XP实践
  5. Atitit.实现反向代理(1)----url rewrite 配置and内容改写 and -绝对路径链接改写 java php
  6. LeetCode128:Longest Consecutive Sequence
  7. 软件工程(QLGY2015)第一次作业小结(含成绩)
  8. java模板和回调机制学习总结
  9. Android手机 Fildder真机抓包
  10. android4.0蓝牙使能的详细解析
  11. uva 10192 Vacation(最长公共子)
  12. CLR 简介
  13. C++何时需要NEW对象,new和定义对象的区别
  14. vue脚手架搭建移动端项目--flexible.js
  15. [leetcode]61. Rotate List旋转链表
  16. SJCP认证题前五十题填坑
  17. [WC2005]双面棋盘(并查集+分治)
  18. day02作业
  19. 为什么在移动端用rem圆角不圆
  20. Jprofiler注册码

热门文章

  1. my09_mysql指定时间点恢复之binlog start-position
  2. CSS控制标题字符长度的方法
  3. Mysql 查看表数据以及索引大小
  4. 信息领域热词分析系统--python过滤
  5. Fortran和C的编译器PGI部署
  6. 3dsmax 卸载/安装失败/出错 2019/2018/2017/2016/2015/2013/2012
  7. C++中遇到的各种小问题
  8. Kudu的架构
  9. C++中string erase函数的使用
  10. 网页URLs