UIActivityView没有动画

时间:2012-05-27 01:50:03

标签: objective-c user-interface

我在iPhone界面上有一个执行功能的按钮。功能如下:

-(IBAction)courses:(id)sender {
[loading startAnimating];
[connection getCourses];
[outlet setText:connection.lastResponseData];
}

我的问题是动画只在[outlet setText:connection.lastResponseData之后开始。如何在此之前启动动画加载?

感谢。

2 个答案:

答案 0 :(得分:2)

看起来getCourses正在阻止主线程;您启动的所有动画都将被删除,直到courses:返回。修改代码以使用后台线程:

-(IBAction)courses:(id)sender {
[loading startAnimating];
    dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
        [connection getCourses];
        dispatch_async(dispatch_get_main_queue(), ^{
            [outlet setText:connection.lastResponseData];       
            [loading stopAnimating];
        });
    });
}

这会将阻止网络访问权限放在系统提供的后台GCD队列中,该队列包含后台线程。

答案 1 :(得分:0)

似乎你的连接阻塞了主线程,主线程也负责UI。在connection启动但未完成时尝试与UI交互,如果它没有响应 - 使连接在另一个线程中运行。


例如,异步NSURLConnection不会阻止您的用户界面。