【发布时间】:2014-02-28 15:09:52
【问题描述】:
在我的应用程序中,我调用此方法来移动 UIButton
- (void) buttonMovement{
[UIView animateWithDuration:0.8
delay:0.0
options:UIViewAnimationOptionAutoreverse | UIViewAnimationOptionRepeat | UIViewAnimationOptionCurveEaseInOut
animations:^{
// do whatever animation you want, e.g.,
play_bt.center = CGPointMake(play_bt.center.x, play_bt.center.y-20);
}
completion:NULL];
}
通过这种方式,我的按钮完成了“上下”运动,但如果我“按下”它,IBAction 将不起作用。如果我不做这个动画,它工作得很好。为什么? 如果这个动画是调用动作的问题,那么做一个不会给我带来问题的动画的方法是什么? 另一种方法是将按钮作为图像视图移动,然后我放置了一个不可见的按钮,但我失去了按下效果,它变成了所有噪音。
【问题讨论】:
-
线程的标题是“动画期间未调用IBAction”,但是你粘贴了一个void方法?
-
我写的是我的动画方法,它不是util show the IBAction,它没有被调用...
-
@nazz_areno 我认为这会有所帮助:stackoverflow.com/questions/20446966/…。使用 touches 开始而不是 IBAction。
-
你的帖子一点都不清楚。 IBAction 方法在哪里? (您发布的代码是 void 方法,而不是 IBAction。)您是说在动画期间“飞行中”时无法单击按钮吗?还是说动画完成后不能点击?
-
您不能在按钮在屏幕上移动时单击它们。可以检测动画对象上的点击,但它需要特殊代码来检查动画对象的表示层,以及 CALayer hitTest 方法。在动画完成之前,按钮 IBActions 永远不会对对象中心的“飞行中”动画起作用。
标签: ios objective-c uiviewanimation