我正在开发一个iPad应用程序,当用户点击按钮时会生成随机数,并且它出现在按钮上的标签上,因此用户认为该值在按钮上。如果需要,用户可以再次单击该按钮以获取另一个随机数。
有没有办法允许用户将数字从源(例如标签)拖到另一个标签上 - 这样用户就不必多次点击按钮来获取数字了想要,他们可以简单地将它从“菜单”拖到标签上。
任何帮助将不胜感激
由于
Baruugh
答案 0 :(得分:0)
您可以使用UITextField
,以便用户可以自行输入值。为什么你想要做一些复杂的输入值。
编辑:如果您希望用户输入标签显示的值,则可以使用UIMenuController为其创建复制选项
答案 1 :(得分:0)
您需要自己处理触摸事件。子类UILabel并覆盖其touches...
方法。
首先,您将使用touchesMoved:withEvent:
方法更新标签的位置。在这种方法中,您感兴趣的是超视图中的触摸位置,而不是标签本身,因此请执行[[touches anyObject] locationInView:self.superview]
之类的操作。
在touchesEnded:withEvent:
方法中,您将使用按钮检查标签的位置,如果它重叠,则将值传递给按钮。这可以通过多种方式实现,但IMO的最佳实践是制作委托模式。让管理superview的视图控制器成为自定义UILabel对象的委托。在touchesEnded:withEvent:
方法中向代理发送消息,让视图控制器处理位置检查,并更新按钮文本。