我有一个微调器功能,可以从进程开始到结束停止。但由于过程需要几毫秒,我无法真正保持旋转器转动。
[NSThread sleepForTimeInterval:2.0]; //method 1
sleep(2); //method2
然后我使用Sleep方法来备用代码并让微调器转动,但它会停止Thread,然后微调器也会停止。这是代码:
if (indexPath.row == 1)
{
[MBProgressHUD showHUDAddedTo:self.view animated:YES]; //spinner starts
EmployeeDataSource *aaa=[[EmployeeDataSource alloc]init];
[aaa Logout: ^(BOOL results){
if(results == YES){
[NSThread sleepForTimeInterval:2.0]; //sleeping thread
//if logout succesfull go to login page
LoginViewController *lv = [self.storyboard instantiateViewControllerWithIdentifier:@"loginsb"];
[self presentViewController:lv animated:NO completion:nil];
[MBProgressHUD hideAllHUDsForView:self.view animated:YES]; //spinner ends
}
else{
NSLog(@"logout not succesfull");
}
}];
我希望[MBProgressHUD showHUDAddedTo:self.view animated:YES];
至少工作2秒钟,但由于正常流程很快,它会在不到一秒的时间内结束?我怎么能延长这个时间,睡眠方法似乎不合适。你有什么主意吗?谢谢。
答案 0 :(得分:1)
我认为你应该在一段时间后做你的事情。 为此,请使用此
[self performSelector:@selector(method) withObject:nil afterDelay:1.0];
此处延迟是秒,因此您可以相应地设置它。
或者你也可以使用它。
dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, 0.5 * NSEC_PER_SEC);
dispatch_after(popTime, dispatch_get_main_queue(), ^(void){
//Do you stuff here...
});
愿这对你有所帮助。