iphone - 如何在 IBAction 中放入无效代码?

标签 iphone ios xcode motion

<分区>

Possible Duplicate:
How do i put a void(shake gesture) inside a IBAction(button)?

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

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)

谢谢,我是个初学者,请详细说明,谢谢! :)

最佳答案

您无法通过“在 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
  }
}

关于iphone - 如何在 IBAction 中放入无效代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11268864/

上一篇:ios - 在 Xcode 4.3 中的选项卡之间传递数据

下一篇:iOS:UIApplication DidReceiveRemoteNotification

相关文章:

iphone - 我如何使用 CoreGraphics 绘制半圆

ios - 相同的操作在两个相同的项目中执行时间不同

iphone - 后台位置管理器必须在appDelegate中吗? iOS系统

ios - 带有截断文本的多行 NSAttributedString

ios - 如何在 iOS 上禁用 firestore 的持久性(缓存)

ios - 在几个应用程序中用新的 Swift 替换旧的 Objective-c 库

ios - 如何以编程方式查找 swift 版本?

iphone - 转换为 ARC 时,我们将 -dealloc 中的代码放在哪里?

iphone - 用于 iPhone/iPad 的 HTML 单位

ios - 如何从我的 ios 应用程序向 whatsapp 发送图像或文本?