每次与另一个图像碰撞时缩放图像

时间:2011-06-29 14:27:13

标签: iphone objective-c xcode animation uiimageview

这是我的代码:

-(void)collision{
    if(CGRectIntersectsRect(imageView.frame,centre.frame)){
        imageView.alpha=0;
        [UIView beginAnimations:nil context:nil];
        [UIView setAnimationDuration:1.0f];
        centre.transform=CGAffineTransformMakeScale(1.3, 1.3);
        [UIView commitAnimations];
    }
}

当imageView与中心中心碰撞变大时。 我的问题是当“imageView”第二次与“center”相撞时动画不起作用。每当imageView与中心碰撞时,我想让中心越做越大,但它只会变大一次。对不起我的英语我是法国人:/我该如何解决这个问题?

2 个答案:

答案 0 :(得分:2)

第二次缩放视图的原因是每次都应用相同的变换 - 每次都需要更改应用的变换:

...
centre.transform = CGAffineTransformScale(centre.transform, 1.3, 1.3);
...

答案 1 :(得分:2)

可能是之后没有应用比例。尝试每次递增比例值。声明float以跟踪对象的比例。然后,在每次碰撞期间,在执行CGAffineTransformMakeScale(scale, scale)之前执行此操作:

scale = scale + 0.3;

实施例

-(void)collision{
    if(CGRectIntersectsRect(imageView.frame,centre.frame)){
        scale = scale + 0.3;
        imageView.alpha=0;
        [UIView beginAnimations:nil context:nil];
        [UIView setAnimationDuration:1.0f];
        centre.transform=CGAffineTransformMakeScale(scale, scale);
        [UIView commitAnimations];
    }
...