0

可能重复:
我如何在 IBAction(按钮)内放置一个 void(摇动手势)?

我是创建应用程序的初学者,目前正在开发一个带有动画的项目。到目前为止,我有一个按钮,当用户按下按钮时,动画就会播放并结束。但我需要帮助,因为我需要用户在按下播放后摇晃 iPhone。当用户按下播放 uilabel 时,这正是我真正需要的,一旦用户摇动 iPhone,uilabel 就会消失并且动画播放时会显示摇晃播放。这是我到目前为止所拥有的:-(IBAction)startanimation {

animation.animationImages= [NSArray arrayWithObjects:
                            [UIImage imageNamed:@"Frame0.png"],
                            [UIImage imageNamed:@"Frame1.png"],
                            [UIImage imageNamed:@"Frame2.png"],
                            [UIImage imageNamed:@"Frame3.png"],
                            [UIImage imageNamed:@"Frame4.png"],
                            [UIImage imageNamed:@"Frame5.png"],
                            [UIImage imageNamed:@"Frame6.png"],
                            [UIImage imageNamed:@"Frame7.png"],
                            [UIImage imageNamed:@"Frame8.png"],
                            [UIImage imageNamed:@"Frame9.png"],
                            [UIImage imageNamed:@"Frame10.png"],
                            [UIImage imageNamed:@"Frame11.png"],
                            [UIImage imageNamed:@"Frame12.png"],
                            [UIImage imageNamed:@"Frame13.png"],
                            [UIImage imageNamed:@"Frame14.png"], 
                            nil];

[animation setAnimationRepeatCount:1];
animation.animationDuration = 1;
[animation startAnimating];


button.hidden = 1;
animation.hidden = 0;
Menu.hidden = 0;
replay.hidden = 0;

}

这就是我打算放入的内容:

- (void)motionEnded:(UIEventSubtype)motion withEvent:(UIEvent *)event {
if (event.subtype == UIEventSubtypeMotionShake)

谢谢,我是一个初学者,所以请解释一下,谢谢!:)

4

3 回答 3

1

您无法通过“在 IBAction 中放置 void”来解决此问题,因为 IBAction 和 void 在 Objective-C 中有些等价。

但是,您可以这样做:当用户按下按钮时,您放置一个标签并设置一个 BOOL 标志,指示用户已按下该标签。

motionEnded:withEvent方法内部,然后if (event.subtype == UIEventSubtypeMotionShake && flag)在开始动画之前进行检查。

不要忘记将标志初始化为 NO/false

这是示例代码:

我假设您的 .h 文件看起来像这样

@interface MyController: UIViewController {
  BOOL buttonPressed;
}
@end

这是您的 .m 文件中应该包含的内容

- (void)viewDidLoad {
  buttonPressed = NO;
}

- (IBAction)buttonPress:(id)sender {
  buttonPressed = YES;
  // show label
}

- (void)motionEnded:(UIEventSubtype)motion withEvent:(UIEvent *)event {
  if (event.subtype == UIEventSubtypeMotionShake && buttonPressed) {
    // start animation
  }
}
于 2012-06-29T21:06:24.293 回答
0

你可以用[self nameOfTheVoid];

-(IBAction)youraction {

    //some code in here
    [self motionEnded];
}
于 2012-06-29T21:04:50.697 回答
0

编写一个连接到您的按钮的函数,该函数将设置一个类似的标志BOOL buttonPressed并显示该标签,告诉用户摇动手机。

motionEnded您可以检查是否为“是”,在buttonPressed这种情况下,您将隐藏该标签,执行动画,然后设置buttonPressed回“否”。

于 2012-06-29T21:07:00.310 回答