我知道UI只应该在主线程上更新,但是可以在单独的线程上创建和添加子视图,只要它们没有添加到可见视图中?会造成内存和性能问题吗?这是一些示例代码。在后台线程上构建UIViews
NSOperationQueue *queue = [[NSOperationQueue alloc] init];
[queue addOperationWithBlock:^{
// do some fancy calculations, building views
UIView *aView = ..
for (int i, i<1000, i++)
{
UIView *subView = …
[aView addSubview:subView];
}
// Update UI on Main Thread
[queue addOperationWithBlock:^{
[[NSOperationQueue mainQueue] addOperationWithBlock:^{
// Update the interface
[self.view addSubview:aView];
}];
}];
}];
您应该查看2012年WWDC视频“在iOS上构建并发用户界面”。 –