2010-05-04 42 views
1

我想要有一个按钮在屏幕上移动,仍然可以点击。我正确地在屏幕上移动,但奇怪的是,我不能点击按钮,直到动画的最后一秒。该按钮仍在移动,但在一定的阈值后,我可以点击它。任何想法发生了什么?任何其他方式的想法,我可以做我想做的事情?谢谢你的帮助。iPhone - 在UIButton UIView动画 - 按钮不可点击部分持续时间

回答

0

没有任何详细信息,我只能假设问题的某些方面。我的假设是,你已经创建了一个动态的UIButton并将其设置为视图,当它不在屏幕上移动时,该视图是完全可点击的。但是,当您将该按钮设置为UIView的动画时,该按钮不再可点击。从我的理解来看,这可能是而不是

+0

我进入Interface Builder并将四舍五入的矩形按钮拖到视图上。在我的视图控制器类中,我有一个在IB中正确链接的IBOutlet UIButton。我的动画按钮的代码是一组简单的[UIView beginAnimation ...]行。我将持续时间设置为5秒。那么要做的“更改”是按钮中心正在设置在屏幕上的其他地方。如果我将动画注释掉,该按钮可点击,并且处于静止状态,并且与touchUpInside链接的功能有效。如果动画结束,它不会变成蓝色,或者直到它停止时调用该函数。 – Robert 2010-05-04 23:15:27

1

我相信当动画开始时,按钮会移动到最终的动画位置,但是在动画完成之前它不会显示在那里。在移动时,您只能看到它的图像投影,而不是真正的按钮。我想如果你可以在动画过程中定期记录按钮的帧值,你可以看到这个(嗯,我必须在我的颜色选择器中尝试)。

也许你可以在许多动画中一次移动按钮而不是一次长动作?

编辑:我试图在我正在工作的程序中记录了动画对象的原点。它在整个动画中具有最终原点值:

2010-05-04 20:41:08.914 beginAnimations: origin=175 197 
2010-05-04 20:41:08.915 commitAnimations: origin= 79 333 
2010-05-04 20:41:08.964 -[ColorPickerVC showSlidingColorOrigin:] 79 333 
2010-05-04 20:41:09.064 -[ColorPickerVC showSlidingColorOrigin:] 79 333 
2010-05-04 20:41:09.164 -[ColorPickerVC showSlidingColorOrigin:] 79 333 
2010-05-04 20:41:09.264 -[ColorPickerVC showSlidingColorOrigin:] 79 333 
2010-05-04 20:41:09.364 -[ColorPickerVC showSlidingColorOrigin:] 79 333 
2010-05-04 20:41:09.464 -[ColorPickerVC showSlidingColorOrigin:] 79 333 
2010-05-04 20:41:09.577 annimationDone: origin= 79 333 
+0

我也在想这个。我决定改用一个带有更新按钮中心x和y的函数的NSTimer。希望这能更好地发挥作用,但我认为它会,对所有人都有帮助。 – Robert 2010-05-04 23:19:05

+0

为什么在移动时需要使用它?除非它移动得非常缓慢,否则无论如何都很难击中移动目标。 – progrmr 2010-05-05 03:48:11