0

現在、_backgroundImageView.image を新しいものと交換する CATransistion があります。それはうまく機能します...そしてすぐに機能しますが、この移行中に前の画像がランダムにグリッチします...別名、移行中のどこかで1フレームの完全な画像をフラッシュしてから、移行を終了します。

コードは次のとおりです。

[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];

コードの前にこれを追加すると、グリッチは発生しませんが、画像比較がメインスレッドをブロックしているように見えるため、他の UI が途切れ途切れになります (アニメーションもメインスレッドのものであるため、これは必要です)。

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

ところで、ちらつきはデバイスでは発生しません....少なくとも私が見ることができる限り...だから、この質問は意味がないかもしれません...遷移中にクラッシュが見られました...しかし、それは別の問題かもしれません.

4

0 に答える 0