【发布时间】:2012-06-22 18:58:09
【问题描述】:
我知道 UIView 不是线程安全的,所以我不能在后台线程上添加视图,要解决这个问题,是否可以在后台线程上创建 UIView 然后将其添加到主线程上?
注意:我不在主线程上执行此操作的原因是因为我的实际代码要复杂得多,因此需要一段时间来创建所有视图并填充值。我不希望 UI 在执行此操作时变得无响应,因此我正在尝试解决此问题。
例如..
-(void)addLabel//called on background thread
{
UILabel * label = [[UILabel alloc]initWithFrame:CGRectMake(0,0,40,100)];
[label setText:@"example"]
[self.view performSelector:@selector(addSubview:) onThread:[NSThread mainThread] withObject:example waitUntilDone:YES];
}
提前致谢。
【问题讨论】:
-
我相信你说的没错。在后台创建它,但在主界面上更新 UI。
标签: objective-c ios uiview uiviewcontroller nsthread