2011-03-04 21 views
0

我有一个iPad应用程序,我正在开发一个用户单击按钮时生成一个随机数,并且它出现在按钮上的标签上,因此用户认为该值位于按钮上。用户可以再次点击该按钮以获得另一个随机数,如果他们想要的话。将值拖动到标签上

有没有一种方法可以让我让用户从一个源(比如说一个标签)拖动一个数字到另一个标签 - 这样用户不必多次单击该按钮才能获得数字他们想要的,他们可以简单地将它从“菜单”拖到标签上。

任何帮助,将不胜感激

感谢

Baruugh

回答

0

可以使用UITextField,使用户可以自己输入一个值。为什么你想要做一些复杂的输入值。

编辑:如果你希望用户输入的不是您可以为使用UIMenuController

http://developer.apple.com/library/ios/documentation/iPhone/Reference/UIMenuController_Class/UIMenuController.html同一副本选项标签显示的值。

+0

在回答你的问题罗宾时,我希望用户能够生成/输入一个数字,而不必让键盘吊起来并每次接管一半的屏幕。 如果有一种方法让用户在没有发生这种情况的情况下输入他们的选择数量,我一定会热衷于听到它。 再次感谢 Baruugh – Baruugh 2011-03-04 05:16:12

0

您需要自己处理触摸事件。子类UILabel并覆盖其方法touches...

首先,您将更新touchesMoved:withEvent:方法中标签的位置。在这种方法中,您对超级视图中的触摸位置感兴趣,而不是标签本身,因此请执行诸如[[touches anyObject] locationInView:self.superview]之类的操作。

而在touchesEnded:withEvent:方法中,您将使用按钮检查标签的位置,如果它重叠,则将值传递给按钮。这可以通过很多方式实现,但IMO的最佳做法是制定委托模式。让管理superview的视图控制器成为自定义UILabel对象的委托。在touchesEnded:withEvent:方法中向代理发送消息,并让视图控制器处理位置检查以及按钮文本更新。