Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/103.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 按此按钮时长按可连续添加数字_Ios_Objective C - Fatal编程技术网

Ios 按此按钮时长按可连续添加数字

Ios 按此按钮时长按可连续添加数字,ios,objective-c,Ios,Objective C,大家好,我有一个问题,当我长按按钮时,我的号码必须连续添加。 比如,如果我按下按钮,他必须将“1,2,3,4,5,6”连续体添加到59。 如果有人能帮我的话 谢谢。您有很多选择。我想到了一对: 选项1:创建UIView的自定义子类,将视图的userInteractionEnabled设置为true,实现touchesBegind/touchesMoved/toucheSend,并开发启动计时器并执行所需操作的逻辑 选项2:创建UIgestureRecognitor的自定义子类,以提供所需的功能。

大家好,我有一个问题,当我长按按钮时,我的号码必须连续添加。 比如,如果我按下按钮,他必须将“1,2,3,4,5,6”连续体添加到59。 如果有人能帮我的话


谢谢。

您有很多选择。我想到了一对:

选项1:创建UIView的自定义子类,将视图的userInteractionEnabled设置为true,实现touchesBegind/touchesMoved/toucheSend,并开发启动计时器并执行所需操作的逻辑

选项2:创建UIgestureRecognitor的自定义子类,以提供所需的功能。手势识别器有一个内置机制,用于在发生感兴趣的事件时通知目标。您可以创建自己的,其中包含开始发送消息之前的延迟量以及消息之间的间隔的参数

选项2将提前进行最多的研究,但将为您提供最灵活、可重用的解决方案。我在GitHub上找到了定制UIgestureRecognitor项目示例。和我一起工作过的是


创建自己的手势识别器实际上比您想象的要容易。那是我推荐的路线。这是一次很好的学习体验。

我建议您跟踪按钮的不同控制状态。您可以为三个不同的uicontrol事件添加目标,如UIControlEventTouchDownUIControlEventTouchUpInsideUIControlEventTouchUpOutside。触摸开始时会收到触摸事件,其他两个事件会告诉您触摸已退出。在这些状态之间,您可以计算值并更改一些文本

 [button addTarget:self action:@selector(touchStarted:) forControlEvents:UIControlEventTouchDown];

 [button addTarget:self action:@selector(touchExited:) forControlEvents:UIControlEventTouchUpInside];

 [button addTarget:self action:@selector(touchExited:) forControlEvents:UIControlEventTouchUpOutside];


- (void)touchStarted:(id)sender
{
  self.touchInProgress = YES;

 /* start your counting operation and do it until the value of touchInProgress BOOL is YES */
}

- (void)touchExited:(id)sender
{
  self.touchInProgress = NO;
}