3

私はこれの底に到達しようとしてきました、そしてそれは私を逃れます。ユーザーがボタンを押したときに表示したいボタンがいくつかあります。しかし、単にそれらを隠すのではなく、アニメーションが必要です。ピンヘッドに縮小する前に、サイズを大きくして、フェードアウトさせています。

私は実際にこれをiOS6で望みどおりに機能させていますが、iOS5.1用のシミュレーターとiPad1で実行すると思いました。どちらもボタンアニメーションをバグのあるものにします。それは成長しますが、その後、画面上の別の次元に爆発するようです。

#pragma mark - animations
-(void)grow:(UIButton *)button {

    void (^makeItGrow)(void)= ^{
        button.transform = CGAffineTransformScale(button.transform,1.6, 1.6);
    };

    void (^whenFinished)(BOOL) =
    ^(BOOL finished) {
        if (finished) {
            [self shrink:button];
        }
    };

    [UIView animateWithDuration:1 animations:makeItGrow completion:whenFinished];

}

-(void)shrink:(UIButton *)button {
    void (^makeItShrink)(void)= ^{

        button.transform = CGAffineTransformScale(button.transform, 0.0, 0.0);
        button.alpha = 0.0;
    };

    void (^whenFinished)(BOOL) =
    ^(BOOL finished) {
        if (finished) {
            //NSLog(@"shrink finished");
            [button setHidden:YES];
            [self resetButton:button];
        }
    };

    [UIView animateWithDuration:3 animations:makeItShrink completion:whenFinished];
}

アニメーションをはっきりと見ることができるように、アニメーションの速度を落としました。最初のセクションは正常に機能しますが、2番目のセクション(縮小)は画面に分裂するか(表示する必要があります、ちょっとクールに見えます)、または単に画面から成長し続けます!確かに望ましいものではありません。

そして、はい、私はまだ非常に多くのことを学んでいます、私はおそらく私のコーディングスタイルにいくつかの指針をとることができます:-)

4

1 に答える 1

6

非常に低く設定してみてください。ただし、ゼロスケール係数と等しくないようにしてください。

button.transform = CGAffineTransformScale(button.transform, 0.0001, 0.0001);
于 2012-11-27T14:40:28.400 に答える