倒计时和数字抽奖

- (void)viewdidload {

_timeout = 10;

[self getcode];

}

- (void)getcode {

//__block int timeout= timecount; //倒计时时间

dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);

dispatch_source_t timercade = dispatch_source_create(DISPATCH_SOURCE_TYPE_TIMER, 0, 0,queue);

dispatch_source_set_timer(timercade,dispatch_walltime(NULL, 0),0.1*NSEC_PER_SEC, 0); //每秒执行

dispatch_source_set_event_handler(timercade, ^{

if(_timeout<=1){ //倒计时结束,关闭

dispatch_source_cancel(timercade);

dispatch_async(dispatch_get_main_queue(), ^{

//设置界面的按钮显示 根据自己需求设置


});

}else{

//int seconds = timeout % 60;

dispatch_async(dispatch_get_main_queue(), ^{

[UIView beginAnimations:nil context:nil];

[UIView setAnimationDuration:0.1];

int randomVal=random() %10;

NSString *strTime = [NSString stringWithFormat:@"%d", randomVal];

self.oneLabel.text = strTime;

int randomVal1=random() %10;


[UIView commitAnimations];

});

_timeout--;

}

});

dispatch_resume(timercade);

}

推荐阅读更多精彩内容

  • 转载自:http://www.jianshu.com/p/4ac227e763fa GCD Grand Centr...
    龙战九野阅读 44评论 0 0
  • 目录(GCD): 关键词 混淆点 场景应用 总结 1. 关键词 线程概念: 独立执行的代码段,一个线程同时间只能执...
    Ryan___阅读 347评论 0 2
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 79,621评论 12 120
  • 被伪装的美丽背后你永远都不知道会藏着什么,也许会带给你最致命的一击。 我不再那么痛恨李长乐了,我甚至有时候想要看见...
    明初的日记本阅读 15评论 0 0