<分区>
<分区>
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/