2

重複の可能性:
CGAffineTransformMakeRotation の使用方法

ボタンのように機能するイメージビューがあります。ユーザーがクリックしたことを示す方法を探しています。少し回転させる次のコードを思いつきました。

 float angle =  60.0;
[UIView animateWithDuration:0.5f animations:^{
    customimageView.transform = CGAffineTransformMakeRotation(angle);
}];

しかし、それは私が見ている動作をしていません。クリックで画像を1.5倍に拡大(または拡大/拡大)する方法を知っている人はいますか?ここで関連するアニメーションの種類は何ですか? この状況でクールだと思った行動を自由に共有してください。

ありがとう。

補足として、どうすれば完全に回転させることができますか?360で渡そうとしましたが、それをしていませんか??

4

3 に答える 3

2

CGAffineTransformMakeScaleで作成されたスケーリング変換を使用して、回転をいつでもCGAffineTransformConcatできます。

別のボタンを押す効果に興味がある場合は、私も何かクールなものが必要で、次のように「ドキドキ」アニメーションに落ち着きました。

BOOL keepThrobbing = NO;

-(void)buttonThrob:(CGFloat)inset {

    UIViewAnimationOptions opts = UIViewAnimationOptionBeginFromCurrentState|UIViewAnimationOptionAllowUserInteraction;

    [UIView animateWithDuration:0.2 delay:0.0 options:opts animations:^{
        self.button.frame = CGRectInset(self.button.frame, inset, inset);
    } completion:^(BOOL finished) {
        [UIView animateWithDuration:0.2 delay:0.0 options:opts animations:^{
            self.button.frame = CGRectInset(self.button.frame, -inset, -inset);
        } completion:^(BOOL finished) {
            if (finished && keepThrobbing) {
                [self buttonThrob:inset];
            }
        }];
    }];
}

このように呼んでください:

keepThrobbing = YES;
[self buttonThrob:10.0];  // expand/shrink by 10px in x and y
于 2012-12-20T01:42:46.937 に答える
0

スケールを変更するには、CGAffineTransformMakeScaleを使用します。

CustomimageView.transform = CGAffineTransformMakeScale(1.5,1.5);

于 2012-12-20T01:40:50.023 に答える
0

2つのアフィン変換をCGAffineTransformConcatと組み合わせることができます。

[customimageView setTransform:CGAffineTransformConcat(CGAffineTransformMakeScale(1.5, 1.5), CGAffineTransformMakeRotation(angle))];
于 2012-12-20T01:42:05.227 に答える