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

您可以将两个仿射变换与 CGAffineTransformConcat 结合起来:

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