Фон мигает во время смены изображения, крест переход, 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;
}
Кстати, мерцание не происходит на устройстве.... по крайней мере, пока я вижу... так что, возможно, этот вопрос спорный... Я видел сбои во время переходов... но это может быть еще одна проблема.