У меня есть метод, который программно сделает снимок экрана [self makeScreenshot]
. Но иногда, когда происходит чередование, результат может быть очень уродливым с черными частями в нем. Поэтому я пытаюсь сделать метод с завершением, который будет ждать завершения анимации диспетчера представлений, чтобы скриншоты можно было сделать безопасно и всегда выглядеть красиво. Вызов будет возможно выглядеть примерно так:Подождите, пока анимация диспетчеров просмотров закончится, прежде чем снимать снимок экрана
[self methodWithCompletionWhenAnimationsIsDone:^(BOOL finished) {
// now it's safe to make the screenshot.
UIImage *myScreenshot = [self makeScreenshot];
}];
Но я не могу понять, как код для такого метода будет выглядеть. Какие-либо предложения?
Я попытался установить код снимка экрана - (void)viewDidLayoutSubviews
-method, и это не сработало. И я не хочу использовать методы обратного вызова вращения, потому что проблема возникает и в других случаях.
Вы говорите о анимации вращения или о своих пользовательских анимациях? –
Какие анимации вы рассматриваете? Анимация завершена? –
Да, но у меня есть разделенный вид, поэтому другие анимации, например, когда отображается мастер-представление/исчезает, также. Я говорю обо всех анимациях, которые контроллер представления обрабатывает за сценой. – turingtested