我想要的是在调用忙碌指示符之前等待我的方法开始后的某个延迟:
感谢您的帮助!
答案 0 :(得分:2)
你可以尝试:
有一个名为completed的bool属性。
perform selector after delay //(some selector showBusy, some delay)
completed = NO;
dispatch_queue_t myqueue = dispatch_queue_create("queue", NULL);
dispatch_async(myqueue, ^{
//your long time operation (must not do any UI changes here)
dispatch_async(dispatch_get_main_queue(), ^{
//UI here
completed = YES;
hideBusy;
});
});
-(void)showBusy{
if(!completed).....
}
答案 1 :(得分:0)
跳跃开始:
可能的解决方案是使用一次性计时器,该计时器将在操作开始时启动,并在所需的持续时间之后触发。计时器的动作是启动忙指示器。
在操作的完成处理程序中,计时器将无效,忙指示符将被禁用(隐藏),如果有的话。
答案 2 :(得分:0)
你可以尝试
[self performSelector:@selector(showIndicator) withObject:nil afterDelay:1.0];
使用一些BOOL变量(如jobCompleted)来指示您的工作是否完整。然后
- (void)showIndicator
{
if(jobCompleted)return;
....
}
答案 3 :(得分:0)
如果您有方法来显示您的活动指示器(让我们将其命名为-(void)showIndicator
),您可以
[self performSelector:@selector(showIndicator) withObject:nil afterDelay:delay];
并使用
取消它[NSObject cancelPreviousPerformRequestsWithTarget:self];