アプリの各ページのテキストを表示するために [UIView animateWithDuration... ] を使用しています。各ページには独自のテキストがあります。ページ間を移動するためにスワイプしています。ページが表示された後にテキストがフェードインするように、1 秒のディゾルブ効果を使用しています。
問題は次のとおりです。その 1 秒間 (テキストがフェード インしている間) スワイプすると、次のページが表示されたときにアニメーションが完了し、2 つのテキスト (前と現在) が重なってしまいます。
実装したい解決策は、アニメーションの発生中にスワイプした場合にアニメーションを中断することです。私はそれを実現することはできません。[self.view.layer removeAllAnimations]; 私にはうまくいきません。
ここに私のアニメーションコードがあります:
- (void) replaceContent: (UITextView *) theCurrentContent withContent: (UITextView *) theReplacementContent {
theReplacementContent.alpha = 0.0;
[self.view addSubview: theReplacementContent];
theReplacementContent.alpha = 0.0;
[UITextView animateWithDuration: 1.0
delay: 0.0
options: UIViewAnimationOptionTransitionCrossDissolve
animations: ^{
theCurrentContent.alpha = 0.0;
theReplacementContent.alpha = 1.0;
}
completion: ^(BOOL finished){
[theCurrentContent removeFromSuperview];
self.currentContent = theReplacementContent;
[self.view bringSubviewToFront:theReplacementContent];
}];
}
これを機能させる方法を知っていますか?この問題に対処する他の方法を知っていますか?