可能重复:
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)
谢谢我是初学者,所以请说明说明,谢谢! :)
答案 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。