1.我们先来看看效果和初始情况
2.大致来说,我们就是通过改变switch的值,改变球的移动速度
1)碰撞检测 onTimer方法
- (void)onTimer
{
self.imageView.center = CGPointMake(self.imageView.center.x + delta.x, self.imageView.center.y +delta.y); //设置当前球的中心。
//反弹操作
if (self.imageView.center.x > self.view.bounds.size.width - ballRadius || self.imageView.center.x <ballRadius) {
delta.x = -delta.x;
}
if (self.imageView.center.y > self.view.bounds.size.height - ballRadius || self.imageView.center.y <ballRadius) {
delta.y = -delta.y;
}
}
2)viewDidLoad方法
- (void)viewDidLoad
{
[super viewDidLoad];
ballRadius = self.imageView.bounds.size.width/2;
[self.view setBackgroundColor:[UIColor whiteColor]];
delta = CGPointMake(12.0, 5.0);
timer = [NSTimer scheduledTimerWithTimeInterval:slider.value target:self selector:@selector(onTimer) userInfo:nil repeats:YES];
// Do any additional setup after loading the view, typically from a nib.
}
3.改变switch之后进行相应的改变
- (IBAction)sliderMoved:(id)sender {
self.label.text = [NSString stringWithFormat:@"%f",slider.value];
[timer invalidate]; //停止当前NStimer的活动
timer = [NSTimer scheduledTimerWithTimeInterval:slider.value target:self selector:@selector(onTimer) userInfo:nil repeats:YES];
}