-(void) sendsms{
if (Isphone = = YES) {
Isphone = NO;
__block int timeout=60; Countdown time
dispatch_queue_t queue = Dispatch_get_global_queue (Dispatch_queue_priority_default, 0);
dispatch_source_t _timer = dispatch_source_create (dispatch_source_type_timer, 0, 0,queue);
Dispatch_source_set_timer (_timer,dispatch_walltime (NULL, 0), 1.0*nsec_per_sec, 0); Executes per second
Dispatch_source_set_event_handler (_timer, ^{
if (timeout<=0) {//Countdown end, close
Dispatch_source_cancel (_timer);
Dispatch_async (Dispatch_get_main_queue (), ^{
Setting the button display of the interface
[Smsbtn settitle:@ "get" forstate:uicontrolstatenormal];
smsbtn.userinteractionenabled = YES;
});
}else{
int seconds = timeout% 120;
NSString *strtime = [NSString stringwithformat:@ "%.2d", seconds];
Dispatch_async (Dispatch_get_main_queue (), ^{
Setting the button display of the interface
NSLog (@ "____%@", strtime);
[UIView Beginanimations:nil Context:nil];
[UIView Setanimationduration:1];
[Smsbtn settitle:[nsstring stringwithformat:@ "%@", Strtime] forstate:uicontrolstatenormal];
[UIView commitanimations];
smsbtn.userinteractionenabled = NO;
});
timeout--;
}
});
Dispatch_resume (_timer);
}else{
HUD = [[Mbprogresshud alloc] initwithview:registerview];
[Registerview Addsubview:hud];
Hud.mode = Mbprogresshudmodetext;
[HUD setoffset:cgpointmake (0, -200.0f)];
Hud.label.text = @ "wrong phone number";
[HUD Showanimated:yes];
Dispatch_async (Dispatch_get_global_queue (dispatch_queue_priority_default, 0), ^{
Sleep (1);
Dispatch_async (Dispatch_get_main_queue (), ^{//back to main thread
[HUD Removefromsuperview];
});
});
}
}
Countdown to get verification code, event code