20

次のように CGAffineTransformMakeScale を使用してカスタム ボタンをアニメーション化しようとしています。

if (stateButton == 0) { //The button is gonna appear

    self.selected = YES;

    self.imageView.transform = CGAffineTransformMakeScale(0.01, 0.01);

    [UIView animateWithDuration:0.5 delay:0 options:UIViewAnimationOptionCurveEaseOut animations:^{
        // animate it to the identity transform (100% scale)
        self.imageView.transform = CGAffineTransformIdentity;
    } completion:nil];

}
else if (stateButton ==1) { //The button is gonna disappear


    self.imageView.transform = CGAffineTransformMakeScale(1, 1);

    [UIView animateWithDuration:0.5 delay:0 options:UIViewAnimationOptionCurveEaseOut animations:^{
        // decrease button
        self.imageView.transform = CGAffineTransformMakeScale(.01, .01);
    } completion:^(BOOL finished){

        self.selected = NO;
    }];
}   

ボタンは元のサイズに完全に拡大しますが、理由はわかりませんが、ボタンをクリックして縮小すると、元のサイズよりも 100% 大きいサイズから元のサイズに縮小されます。元のサイズを縮小し、コードで示したように 0.01 のスケールを達成します。

助けてください!!

4

2 に答える 2

33

次のコードを使用して、画像ビューのサイズの拡大と縮小をアニメーション化できます

[UIView animateWithDuration:2.0 animations:^{
    self.imageView.transform = CGAffineTransformMakeScale(0.5, 0.5);
} 
completion:^(BOOL finished){
    [UIView animateWithDuration:2.0 animations:^{
        self.imageView.transform = CGAffineTransformMakeScale(1, 1);    
    }];
}];

これにより、イメージビューのサイズが最初に小さくなり、アニメーションが終了すると、アニメーションで元のサイズに戻ります。

于 2013-10-08T13:29:51.900 に答える