2011-02-25 103 views
3

对于iPad模拟器3.2当前正在开发的iPad应用程序,UIView上有四个UIButton。拖拽UIButtons

目前发生的情况是:用户将他们的手指从一个按钮拖动到另一个按钮。当手指离开第一个按钮时,该按钮保持其活动状态,并且除非用户释放触摸并再次按下第二个按钮,否则手指通过第二个按钮时不会发生任何事情。

我需要发生的是,当他们的手指离开第一个UIButton的区域时,它应该回到它的默认UI状态,并且当手指进入第二个UIButton的区域时,第二个按钮应该假设它的活动状态,并且发起一个事件。

我真的完全失去了如何做到这一点,我做了大量的谷歌搜索,没有提供快速解决方案,看起来像我应该很容易完成的东西。

在此先感谢。

回答

1

研究修改按钮的动作以使用one of the many different control events available。也就是说,这听起来像您需要注册按钮以在UIControlEventTouchDragEnter和/或UIControlEventTouchDragExit上执行操作。

+0

我已经在使用这些了,主要问题是当手指离开按钮(TouchDragExit)时,它不再触发TouchDragEnters对于它传递过来的其他按钮,它只会在手指返回到初始按钮时触发。从后台UIView拖动到按钮时,TouchDragEnter也不会触发。 – Debashis 2011-02-25 22:47:51

+1

它确实听起来很毛茸茸的工作正确。也许你会更好地手动跟踪触摸事件?您能够非常简洁地描述所需操作的逻辑和条件。跟踪触摸状态(当触摸向下/向上并进入/退出区域时)可能同样简单,但可能不一定容易,并找出适当的操作。 – SomeRandomGuy 2011-02-25 23:00:41

1

你可能不想在这里使用UIButtons。相反,创建自己的视图,并自己动手处理。您可以轻松跟踪自定义视图内任何视图的X和Y位置,并做出相应响应。

UIButtons只是不是为这种用途而设计的。