次のようにブロックアニメーションを使用して、画面全体で非常にゆっくりとアニメーションを繰り返している画像ビューがあります。
[UIView animateWithDuration:100.0f
delay:0.0f
options:UIViewAnimationOptionCurveLinear | UIViewAnimationOptionRepeat
animations:^(void) {
pattern.frame = CGRectMake(0-(pattern.frame.size.width/2), 0, pattern.frame.size.width, pattern.frame.size.height);
}
completion:NULL];
基本的に画像は画面幅の2倍で、繰り返すと連続してループしているように見えます。
これはすべて正常に機能しますが、私がやりたいことは、回転タッチ ジェスチャに基づいてスクロールを高速化または低速化することです。ジェスチャ レコグナイザなどをセットアップしていますが、現在のアニメーションを変更して速度を上げることはできますか?
そうでない場合、現在実行中のアニメーションをキャンセルして、より短い/より長い時間の別のアニメーションに置き換えることはできますか?
ところで、ジェスチャ認識エンジンでまったく同じアニメーション ブロックを使用してみました。
-(void)rotatedSpinner:(UIRotationGestureRecognizer *)gestureRecognizer{
CGFloat rotation = gestureRecognizer.rotation;
[UIView animateWithDuration:100-(rotation*10)
delay:0.0f
options:UIViewAnimationOptionBeginFromCurrentState
animations:^(void) {
pattern.frame = CGRectMake(0-(pattern.frame.size.width/2), 0, pattern.frame.size.width, pattern.frame.size.height);
}
completion:NULL];
}
..しかし、それはまったく何もしないようですか?どんな助けでも感謝します。