1

假设我们有一个 UIVewcontroller,叫它 A,在那个 VC 的 viewdidload 中我们添加两个 UIViewcontrollers(B,C)。现在为了使 A 的 Viewdidload 中的 UI 平滑,我们做了一些 GCD 工作

  dispatch_queue_t queue = dispatch_queue_create("CustomQueue", NULL);
  dispatch_async(queue, ^{
  // Create views, do some setup here, etc etc
  // Perform on main thread/queue
   dispatch_async(dispatch_get_main_queue(), ^{
     // this always has to happen on the main thread
    [self.view addSubview:myview1];
    [self.view addSubview:myview2];
    [self.view addSubview:myview3];
   });
 });

现在基于此代码,我是否保证视图将以相同的顺序添加?查看 1 ,然后 2 ,然后 3?

我注意到任意一些视图出现在其他视图之前!

4

1 回答 1

4

您的问题几乎可以肯定是这部分:

  dispatch_async(queue, ^{
  // Create views, do some setup here, etc etc

不能在后台线程上做任何与视图相关的事情(或者实际上是任何与 UIKit 相关的事情)。时期。

于 2013-02-25T21:31:16.617 回答