前回のポストで反響がいいので、もう一発。 前回はがっつりUIKitを使っているため、メインスレッドで合成が行われる。 つまり、大きい寸法のUIImageを合成する時など、処理に時間がかかる場合は、合成処理中に画面上での次の処理がしばらく止まることがある。 んじゃぁどぉするの?ってことで、GCDを使って別スレッドでUIKitを使わずに合成を行う。 実際のサンプルコードの前に、方法の概要から説明すると、以下のようなメソッドで処理を行う - (void)foo:[終了blocks] { // 1. 合成処理の下準備を行う dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_LOW, 0), ^{ // 2. ここで合成処理を行う dispatch_async(dispatch_get_main_queue(), ^{