UI가 메인 스레드에서만 업데이트되어야한다는 것을 알고 있지만 보이는 뷰에 추가되지 않는 한 별도의 스레드에서 서브 뷰를 생성하고 추가 할 수 있습니다 ? 메모리 및 성능 문제가 발생합니까? 다음은 몇 가지 예제 코드입니다.백그라운드 스레드에서 UIView 빌드하기
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의 동시 사용자 인터페이스 만들기"를 확인하십시오. –