0

ボタンがあり、アニメーションを付けたいと思います。すべて正常に動作しますが、ボタンが以前の状態に復元されているように見えるように、アニメーションの画像シーケンスの順序を逆にする方法を見つけようとしています。ドキュメントに何も見つかりません。画像の順序を逆にすることができないようです。順序を逆にすることができない場合、ボタンに別の画像シーケンスを与えるにはどうすればよいですか?新しいアレイでリーフする必要がありますか?

daコード:

 animatedButton = [[UIImageView alloc] initWithFrame:animButtonRect];
[animatedButton setImage:[UIImage imageNamed:@"messaging_00014.png"]];
[animatedButton setUserInteractionEnabled:YES];

animatedButton.animationImages = [NSArray arrayWithObjects:
                            [UIImage imageNamed:@"mov_00000.png"],
                            [UIImage imageNamed:@"mov_00001.png"],
                            [UIImage imageNamed:@"mov_00002.png"],
                            [UIImage imageNamed:@"mov_00003.png"],
                            [UIImage imageNamed:@"mov_00004.png"],
                            [UIImage imageNamed:@"mov_00005.png"],
                            [UIImage imageNamed:@"mov_00006.png"],
                            [UIImage imageNamed:@"mov_00007.png"],
                            [UIImage imageNamed:@"mov_00008.png"],
                            [UIImage imageNamed:@"mov_00009.png"],
                            [UIImage imageNamed:@"mov_00010.png"],
                            [UIImage imageNamed:@"mov_00011.png"],
                            [UIImage imageNamed:@"mov_00012.png"],
                            [UIImage imageNamed:@"mov_00013.png"],
                            [UIImage imageNamed:@"mov_00014.png"],
 nil];

 animatedButton.animationDuration = 1.0;
 animatedButton.animationRepeatCount = 1;
[self.view addSubview:animatedButton];
4

2 に答える 2

0

この返信が少し遅れていることは承知していますが、私はリバース アニメーションに取り組んでおり、素敵な小さなコードを共有したいと考えています。

注: このコードは、4 桁の画像名を持つ 30 枚の画像のアニメーション シーケンス用です。例えば。image_0001.jpg

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

    int animationSizeTwo = 30;

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

        NSString *zeros = @"000";

        if ( i >= 1000 ) {

            zeros = @"";

        }
        else if ( i >= 100 ) {

            zeros = @"0";

        }
        else if ( i >= 10 ) {

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

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

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


    }


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

次に、アニメーションを逆にするには、画像カウントの代わりにこのコードを使用します。

int animationSizeTwo = 0;

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

私が言ったように、あなたの質問に答えるには遅すぎるかもしれませんが、将来いつでも役に立つかもしれません.

于 2013-02-05T02:21:04.447 に答える
0

私はそれが古い質問であることを知っていますが、ここで答えられたことがないので解決策です. 同じ画像を逆に配置し、シーケンスの最初と最後をスキップするだけです。

animatedButton.animationImages = [NSArray arrayWithObjects:
                            [UIImage imageNamed:@"mov_00000.png"],
                            [UIImage imageNamed:@"mov_00001.png"],
                            [UIImage imageNamed:@"mov_00002.png"],
                            [UIImage imageNamed:@"mov_00003.png"],
                            [UIImage imageNamed:@"mov_00004.png"],
                            [UIImage imageNamed:@"mov_00005.png"],
                            [UIImage imageNamed:@"mov_00006.png"],
                            [UIImage imageNamed:@"mov_00007.png"],
                            [UIImage imageNamed:@"mov_00008.png"],
                            [UIImage imageNamed:@"mov_00009.png"],
                            [UIImage imageNamed:@"mov_00010.png"],
                            [UIImage imageNamed:@"mov_00011.png"],
                            [UIImage imageNamed:@"mov_00012.png"],
                            [UIImage imageNamed:@"mov_00013.png"],
                            [UIImage imageNamed:@"mov_00014.png"],
                            [UIImage imageNamed:@"mov_00013.png"],
                            [UIImage imageNamed:@"mov_00012.png"],
                            [UIImage imageNamed:@"mov_00011.png"],
                            [UIImage imageNamed:@"mov_00010.png"],
                            [UIImage imageNamed:@"mov_00009.png"],
                            [UIImage imageNamed:@"mov_00008.png"],
                            [UIImage imageNamed:@"mov_00007.png"],
                            [UIImage imageNamed:@"mov_00006.png"],
                            [UIImage imageNamed:@"mov_00005.png"],
                            [UIImage imageNamed:@"mov_00004.png"],
                            [UIImage imageNamed:@"mov_00003.png"],
                            [UIImage imageNamed:@"mov_00002.png"],
                            [UIImage imageNamed:@"mov_00001.png"],
 nil];
于 2020-01-20T08:04:33.490 に答える