
例:
验证60秒
int timeTick
NSTimer *timer
timeTick = 61//60秒团哗兆倒计时
timer=[NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(timeFireMethod) userInfo:nil repeats:YES]
_but.enabled = NO
-(void)timeFireMethod
{
timeTick--
if(timeTick==0){
[timer invalidate]
_but.enabled = YES
[_but setTitle:@"获取验证码" forState:UIControlStateNormal]
}else
{
NSString *str = [NSString stringWithFormat:@"%d秒",timeTick]
[_but setTitle:str forState:UIControlStateNormal]
}
}
上面代码就是实现了一个倒计时芦搭60秒的功能。
创建方式:
需要添通过 addTimer:forMode: 加到当前线程的runloop
如果只是执行延时 *** 作,可以用:
以上的所有方法创建的定时器,如果在子模团线程中运行是需要开启runloop的
影响正肢NSTimer的原因:
计时器对象,与屏幕的刷新率同步。
iOS 设备的屏幕刷新频率是固定的,其精度相当准确,一般用于做 UI 界面的不停重绘
GCD中的 dispatch_source 常见的场景就是定时器功能, dispatch_source_t 系统级的源事件,由系统自动触发,高精度
void dispatch_source_set_timer(dispatch_source_t source,dispatch_time_t start,uint64_t interval,uint64_t leeway)
参数1:source 创建的定时器timer
参数2:DISPATCH_TIME_NOW
DISPATCH_SOURCE_TYPE_TIMER系统会使用默认时钟来进行计时,当系统休眠的时候,默认时钟是不走的,也就会导致计时器停止。
dispatch_walltime(NULL,0)可以让计时器按照真实时间间隔进行计时。
参数3:间隔时间
参数4:容错,如果设置为1秒,系统可能会在任务时间到达前1秒或后1秒执行
创建好的定时器,需要手动开启:
等到指定的时间通过异步的方式将提其提交到指定的队列中执行
dispatch_time 第一个参数:dispatch_time_t
DISPATCH_TIME_NOW: 0
DISPATCH_TIME_FOREVER: 无穷大举码世
这里0.36代表 0.36秒之后执行任务
苹果秒表悬浮窗设置方法:步骤设置-—通用-—辅助功能-—assistivetouch-—打开就能看见一个白点就是了坦腔迅其实就是一个代替home键的虚拟按键按主屏幕就能退到桌面按两下主屏幕就能打开桌圆枣面设备内还有锁屏旋转静音等功能。
也可以打开手机页面,两个手指按住屏幕,之后同时往中间滑动。然后我们在d出来的窗口中点击打开“窗口小工具”。然后我们在d出来的窗口中点击选择喜欢的时钟格式,让此按住拉到桌面即可。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)