0

UIImageView を使用して、.png 画像をアニメーション化して 3D をシミュレートしています。タッチ イベントを使用してアニメーションの流れを制御することはできますか? たとえば、ボックスをシミュレートしている場合、指で左または右に回転できますか? そうでない場合は、私を別の方向に向けることができますか?

4

1 に答える 1

1

まず、これを行うには 2 つの方法があります。コア アニメーションを使用してキューブを構築し、スワイプまたはタッチで回転させる難しい方法と、アニメーションの .png シーケンスをファイルに追加する (最も簡単な) 方法です。 UISwipeGestureRecogniser によって起動される imageView。

まず、ジェスチャー認識機能を作成します。通常は ViewDidLoad に入れるだけです

 //Implement Swipe Views
UISwipeGestureRecognizer *swipeRight = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(swipeLeft)];
swipeRight.numberOfTouchesRequired = 1;
swipeRight.direction = UISwipeGestureRecognizerDirectionLeft;
[_imageView addGestureRecognizer:swipeRight];

次に、 @selector(swipeRight) で宣言した swipeRight メソッドを、スワイプ時に再生するアニメーションで実装します...

-(void)swipeRight
{
NSMutableArray *animationArray = [[NSMutableArray alloc] init];

    int animationSizeTwo = 30;

    for (int i=0; i< animationSize; i++) {

        NSString *zeros = @"000";

        if ( i >= 1000 ) {

            zeros = @"";

        }
        else if ( i >= 100 ) {

            zeros = @"0";

        }
        else if ( i >= 10 ) {

            zeros = @"00";
        }
        NSString *animationNameTwo = [NSString stringWithFormat:@"(imageName)"];

        NSString *imageName = [NSString stringWithFormat:@"%@%@%d.png", animationNameTwo, zeros, i];

        [animationArrayTwo addObject:[UIImage imageNamed:imageName]];


    }

    _imageView.animationImages = animationArray;
    _imageView.animationDuration = 1;
    _imageView.animationRepeatCount = 1;
    _imageView.image = [_imageView.animationImages lastObject];
    [_imageView startAnimating];

}

これで、右にスワイプするたびにアニメーションが起動します。UIGestureRecogniser コードをコピーして貼り付け、すべてのメソッドを変更して、両方の方法で起動できるようにすることができます。swipeLeft を実装するときは、アニメーション シーケンス数を次のように変更するだけです。

int animationSizeTwo = 0;

    for (int i=30; i> animationSize; i--) {

これにより、アニメーションが逆に回転します。

これが役に立ったことを願っています。T

于 2013-02-05T21:15:25.010 に答える