这是我的代码:
-(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与中心碰撞时,我想让中心越做越大,但它只会变大一次。对不起我的英语我是法国人:/我该如何解决这个问题?
答案 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];
}
...