2011-05-19 65 views
0

我想在完成一个线程/另一个函数的类后,从另一个视图中删除一个视图。目前我使用下面的代码设定的时间段之后将其删除,但很明显,该函数完成时间变化线程/函数完成后调用函数

LoadingView *loadingView = 
    [LoadingView loadingViewInView:self.view]; 

    [loadingView 
    performSelector:@selector(removeView) 
    withObject:nil 
    afterDelay:10.0]; 

是否有这样做的一个简单的方法?我在网上查找,似乎无法找到任何东西。这是否意味着我必须自己编写此功能?

+0

当你想删除它时,为什么不能直接调用[loadingView removeView]?当然,牢记UIKit线程安全和所有... – 2011-05-19 01:43:29

回答

1

您可以从其他线程与删除视图:

[loadingView performSelectorOnMainThread:@selector(removeView) withObject:nil waitUntilDone:NO]; 

当然你只需要在一些地方,线程可以访问维持到loadingView参考。

+0

非常感谢,这很好。轻微的问题虽然不是主要的,但是在加载视图消失和正在显示的数据之间存在一些(但显而易见的)延迟。我正在加载的是来自线程中URL的图像,任何想法如何防止? – 2011-05-19 02:37:12

+0

在performSelectorOnMainThread调用中将waitUntilDone设置为no。 – TheBlack 2011-05-19 02:53:54

+0

好的电话,TheBlack。更新以反映这种情况。 – 2011-05-19 03:25:38