Фон мигает во время смены изображения, крест переход, CATransition

В настоящее время у меня есть CATransistion, который должен заменить _backgroundImageView.image с новым. Это прекрасно работает... И работает быстро, однако предыдущее изображение будет глючить во время этого перехода случайным образом... Ака прошить полное изображение для одного кадра где-то во время перехода, а затем закончить переход.

Вот код:

[CATransaction begin];

CATransition *transition = [CATransition animation];
transition.type = kCATransitionFade;
transition.duration = 0.3;
transition.delegate = self;
[transition setValue:@"swipe" forKey:@"tag"];
[_backgroundImageView.layer addAnimation:transition forKey:nil];

 _backgroundImageView.image = [_backgroundImages objectAtIndex:pageControl.currentPage];
[CATransaction commit];

Если я добавлю это перед кодом, то сбой не произойдет, но другие вещи в пользовательском интерфейсе будут прерывистыми, потому что сравнение изображений, по-видимому, блокирует основной поток (что необходимо, поскольку анимация также является основным потоком)

if ([UIImagePNGRepresentation(_backgroundImageView.image) isEqualToData:UIImagePNGRepresentation([_backgroundImages objectAtIndex:pageControl.currentPage])]) {
    return;
}

Кстати, мерцание не происходит на устройстве.... по крайней мере, пока я вижу... так что, возможно, этот вопрос спорный... Я видел сбои во время переходов... но это может быть еще одна проблема.

0 ответов

Другие вопросы по тегам