如何减少显示装载机的初始时间?

时间:2014-07-12 05:50:46

标签: ios7 xcode5 nstimer gif loader

我在按钮操作中实现加载程序,但是当我单击按钮时,需要3到5秒才能开始加载。我使用两个控制器来实现loader-UIImage + animatedGIF.h来使用gif图像和MBProgressHUD.h来实现进度时间。我不知道如何减少启动加载程序所需的初始时间。 我正在使用此代码来实现loader -

NSURL *url = [[NSBundle mainBundle] URLForResource:@"loadingg" withExtension:@"gif"];

    self.loader.image = [UIImage animatedImageWithAnimatedGIFData:[NSData dataWithContentsOfURL:url]];


    float progress = 0.0f;

    while (progress < 1.0f) {



        progress += 0.01f;

       // HUD.progress = progress;

        usleep(50000);


    }

    [NSTimer scheduledTimerWithTimeInterval:progress target:self selector:@selector(abcd) userInfo:nil repeats:NO];     

2 个答案:

答案 0 :(得分:0)

原因是因为在您从委托中返回之前它不会显示您的图像,并且由于您使用while循环阻止委托5秒钟,您会遇到您描述的行为

答案 1 :(得分:0)

我必须假设主线程上usleep(50000)

如果是,则有 5秒延迟。睡觉主线程就是这样:等等。正确的方法是异步加载。

阅读@bbum建议,了解何时适合调用usleep:what is the difference among sleep() , usleep() & [NSThread sleepForTimeInterval:]?