这是我的代码:
- (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“中心”(因此它变得越来越大)但是当它碰撞一次时,“中心”变得非常大,我认为这是由于计时器。我该怎么解决这个问题?对不起我的英语我是法国人:/
答案 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将增加三倍。由于您有一个非常短的间隔来测试碰撞,您可能需要查看较小的比例因子。