如何在IBAction中放入空代码?

时间:2012-06-29 20:59:01

标签: iphone ios xcode motion

  

可能重复:
  How do i put a void(shake gesture) inside a IBAction(button)?

我是创建应用程序的初学者,目前我正在开发一个带动画的项目。 到目前为止,我有一个按钮,当用户按下按钮时,动画播放和结束。 但我需要帮助,因为我需要用户在按下播放后摇动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)

谢谢我是初学者,所以请说明说明,谢谢! :)

3 个答案:

答案 0 :(得分:1)

你无法通过“在IBAction中放置空格”来解决这个问题,因为在Objective-C中IBAction和void在某种程度上是等效的。

但是,以下是如何使用此功能:当用户按下按钮时,您会设置标签并设置一个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
  }
}

答案 1 :(得分:0)

您可以使用[self nameOfTheVoid];

调用空格
-(IBAction)youraction {

    //some code in here
    [self motionEnded];
}

答案 2 :(得分:0)

编写一个与你的按钮相连的功能,它会设置一个像BOOL buttonPressed这样的标志,并显示该标签告诉用户摇动手机。

motionEnded中,您可以查看buttonPressed是否为YES,在这种情况下,您将隐藏该标签,执行动画,然后将buttonPressed设置为NO。