碰撞后缩放uiimageView的问题

时间:2011-07-05 12:15:00

标签: iphone uiimageview collision-detection scale

这是我的代码:

- (void) yo { 
if(CGRectIntersectsRect(imageView.frame,centre.frame)){

    [imageView removeFromSuperview];
self.scale=self.scale+1; 

[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:1.0f];
centre.transform = CGAffineTransformScale(centre.transform, scale, scale);
[UIView commitAnimations];      
}

- (void)viewDidLoad {
[super viewDidLoad];


[NSTimer scheduledTimerWithTimeInterval:0.01 target:self
selector:@selector(collision) userInfo:nil repeats:YES];

scale=1;

}

我想每次与“imageView”碰撞时缩放+1“中心”(因此它变得越来越大)但是当它碰撞一次时,“中心”变得非常大,我认为这是由于计时器。我该怎么解决这个问题?对不起我的英语我是法国人:/

2 个答案:

答案 0 :(得分:0)

更改此

self.scale = self.scale + 0.01;或自定义值

self.scale = self.scale + 0.5;

这是一半的比例将被添加所以1.5倍大1.0正常

答案 1 :(得分:0)

centre.transform已应用scale因素。无需自己跟踪它。

如果您打算每次将centre的尺寸增加10%,请执行此操作,

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

这将增加现有规模。如果你发现它很大,减少你缩放的数量,例如1.02或1.002。

如果您打算维持自己的比例,可以

centre.transform = CGAffineTransformMakeScale(scale, scale);

您每次也将比例因子增加1。这确实是一个重要因素。比例因子2将使图像的大小加倍,2将增加三倍。由于您有一个非常短的间隔来测试碰撞,您可能需要查看较小的比例因子。