IOS 添加定时器(NSTimer)

本文介绍了iOS开发中两种定时器的使用场景:CADisplayLink适用于高频更新,如游戏开发;NSTimer则更适合长时间间隔的任务,例如图片轮播。并详细展示了如何通过NSTimer实现图片轮播的功能,并结合UIScrollView的拖拽事件控制定时器的启停。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 定时器

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]; }

 

转载于:https://www.cnblogs.com/liuwj/p/6426510.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值