我试图在摇动iPhone.i后尝试调用谷歌页面
- (void)motionBegan:(UIEventSubtype)motion withEvent:(UIEvent *)event
{
if(event.type == UIEventSubtypeMotionShake)
{
[self shakemethod];
[self open];
}
}
-(void)shakemethod
{
CABasicAnimation *shake = [CABasicAnimation animationWithKeyPath:@"position"];
[shake setDuration:1.1];
[shake setRepeatCount:2];
[shake setAutoreverses:YES];
[shake setFromValue:[NSValue valueWithCGPoint:
CGPointMake(lockImage.center.x - 15,lockImage.center.y)]];
[shake setToValue:[NSValue valueWithCGPoint:
CGPointMake(lockImage.center.x + 15, lockImage.center.y)]];
[lockImage.layer addAnimation:shake forKey:@"position"];
}
-(void)open
{
[[UIApplication sharedApplication] openURL:[NSURL URLWithString: @"http://google.co.in"]];
}
两种方法有效,但是当我摇动iPhone摇动图像时没有显示但谷歌页面打开 所以请帮助我。我需要当我摇动手机时先摇动图像,摇动完成摇动后打开谷歌页面。
感谢高级。
答案 0 :(得分:1)
将委托自我设置为您的摇动动画然后在动画完成委托调用open方法
- (void)motionBegan:(UIEventSubtype)motion withEvent:(UIEvent *)event
{
if(event.type == UIEventSubtypeMotionShake)
{
[self shakemethod];
}
}
-(void)shakemethod
{
CABasicAnimation *shake = [CABasicAnimation animationWithKeyPath:@"position"];
[shake setDuration:1.1];
[shake setRepeatCount:2];
[shake setAutoreverses:YES];
//set animation delgate to self
[shake setDelegate:self];
[shake setFromValue:[NSValue valueWithCGPoint:
CGPointMake(lockImage.center.x - 15,lockImage.center.y)]];
[shake setToValue:[NSValue valueWithCGPoint:
CGPointMake(lockImage.center.x + 15, lockImage.center.y)]];
[lockImage.layer addAnimation:shake forKey:@"position"];
}
//when animation will finish call the open method
-(void)animationDidStop:(CAAnimation *)anim finished:(BOOL)flag
{
[self open];
}
-(void)open
{
[[UIApplication sharedApplication] openURL:[NSURL URLWithString: @"http://google.co.in"]];
}
希望这就是你想要的。