将值拖动到标签上

时间:2011-03-04 04:09:03

标签: ipad button drag-and-drop label

我正在开发一个iPad应用程序,当用户点击按钮时会生成随机数,并且它出现在按钮上的标签上,因此用户认为该值在按钮上。如果需要,用户可以再次单击该按钮以获取另一个随机数。

有没有办法允许用户将数字从源(例如标签)拖到另一个标签上 - 这样用户就不必多次点击按钮来获取数字了想要,他们可以简单地将它从“菜单”拖到标签上。

任何帮助将不胜感激

由于

Baruugh

2 个答案:

答案 0 :(得分:0)

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

编辑:如果您希望用户输入标签显示的值,则可以使用UIMenuController为其创建复制选项

http://developer.apple.com/library/ios/documentation/iPhone/Reference/UIMenuController_Class/UIMenuController.html

答案 1 :(得分:0)

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

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

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