Предположим, у нас есть один UIVewcontroller, назовите его A, в viewdidload этого VC мы добавим к нему два UIViewcontrollers (B, C). Теперь, чтобы сделать UI гладко в Viewdidload А мы делаем некоторые НОД работы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?
Я замечаю, что произвольно некоторые взгляды появляются перед другими !!
Да, сначала будет добавлен 'myview1', затем' myview2', затем 'myview3'. – rmaddy
На самом деле, я не замечаю случайный шаблон, большую часть времени он идет по этому заказу, но я замечаю, что другие представления добавляются не в порядок !! – Huang
Пока все вызовы добавления subviews выполняются в основном потоке, тогда не должно быть возможно, чтобы subviews были не в порядке. Методы внутри блока 'dispatch_async' вызываются по порядку, точно так же, как методы будут вызваны нормально. Вы говорите, что эти три взгляда иногда появляются в другом порядке или вы говорите, что иногда разные взгляды смешиваются между этими тремя? – rmaddy