3

私は 10 個のボタンと 1 つのボタン (たとえば 5) の「クリック」がある単純なアニメーションに取り組んでいます。または.....ありがとう

    NSMutableArray* imagesArray = [[NSMutableArray alloc] init];
for (int images = 0; images < 15; images++) {

    UIImage* buttonImage = [UIImage imageNamed:[NSString stringWithFormat:@"aaqqq00%02d.png", images]];
    [imagesArray addObject:buttonImage];
}

NSArray* reversedAnim = [[imagesArray reverseObjectEnumerator] allObjects];

int buttonTag = button.tag;

for (int images = 1; images <= 10; images++) {
    UIButton *animButton = (UIButton *)[self.view viewWithTag:images];
    if (images <= buttonTag) {
        animButton.imageView.animationImages = imagesArray;
        [animButton setImage:
         [UIImage imageNamed:@"aaqqq0014.png"] forState:UIControlStateNormal];
        animButton.adjustsImageWhenHighlighted = NO;
        animButton.imageView.animationDuration = 1; //whatever you want (in seconds)
        animButton.imageView.animationRepeatCount = 1;
        [animButton.imageView startAnimating];
    } else {

        if (currentButtonTag_ >= images) {
            animButton.imageView.animationImages = reversedAnim;
            [animButton setImage:
             [UIImage imageNamed:@"aaqqq0000.png"] forState:UIControlStateNormal];
            animButton.adjustsImageWhenHighlighted = NO;
            animButton.imageView.animationDuration = 0.2; //whatever you want (in seconds)
            animButton.imageView.animationRepeatCount = 1;
            [animButton.imageView startAnimating];
        }
    }
}
4

2 に答える 2

0

ループを反復処理するときに、目的の遅延を保持する変数を用意し、各ループの最後に追加します。これを と呼びますdelay

今、呼び出す代わりに:

[animButton.imageView startAnimating];

これを行う:

[animButton.imageView performSelector:@selector(startAnimating) withObject:nil afterDelay:delay];

各ボタンは、累積された遅延の後にアニメーションを開始します。

于 2013-06-26T10:36:41.283 に答える
0

遅延時間と持続時間を与える必要があります。

[UIView animateWithDuration:0.6
                          delay:2.0
                        options: UIViewAnimationCurveEaseOut
                     animations:^{S1Button.frame = CGRectMake(20, 10, 50, 10);S1buttonA.alpha = 0;}
                     completion:nil];

Set this for every animation.

于 2013-06-26T10:52:26.130 に答える