Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/93.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 按下按钮3秒钟_Ios_Uibutton - Fatal编程技术网

Ios 按下按钮3秒钟

Ios 按下按钮3秒钟,ios,uibutton,Ios,Uibutton,我有一个包含值170.00的UILabel。我现在想创建一个按钮,当按下3秒时,该按钮将值设置为0。显然,用按钮更改标签的值很容易,但我如何添加必须按下至少3秒的条件 最终结果应该类似于计算器的重置按钮,当按下3秒或更长时间时,该按钮将重置存储的用户值 我甚至不知道从哪里开始?斯泰默 谢谢 正确,请使用NSTimer。我不打算为您编写代码,但您应该执行以下操作: 按下按钮后,启动计时器 松开按钮后,结束/清除计时器。 NSTimer使用选择器在间隔上运行。因此,您可以在3秒钟后运行它,如果使用该

我有一个包含值170.00的UILabel。我现在想创建一个按钮,当按下3秒时,该按钮将值设置为0。显然,用按钮更改标签的值很容易,但我如何添加必须按下至少3秒的条件

最终结果应该类似于计算器的重置按钮,当按下3秒或更长时间时,该按钮将重置存储的用户值

我甚至不知道从哪里开始?斯泰默


谢谢

正确,请使用NSTimer。我不打算为您编写代码,但您应该执行以下操作:

按下按钮后,启动计时器 松开按钮后,结束/清除计时器。 NSTimer使用选择器在间隔上运行。因此,您可以在3秒钟后运行它,如果使用该方法,您可以更改UILabel文本。
正确,请使用NSTimer。我不打算为您编写代码,但您应该执行以下操作:

按下按钮后,启动计时器 松开按钮后,结束/清除计时器。 NSTimer使用选择器在间隔上运行。因此,您可以在3秒钟后运行它,如果使用该方法,您可以更改UILabel文本。
例如,您可以简单地使用NSTimer。当按下按钮时,为iAction使用适当的事件,启动NSTimer,在3秒钟后做一些事情。但当松开按钮时, 你使计时器失效。因此,如果之前松开按钮,计时器将停止。
否则,事件将启动,计时器将失效,因此当您松开按钮时,计时器已停止。

只需使用NSTimer即可。当按下按钮时,为iAction使用适当的事件,启动NSTimer,在3秒钟后做一些事情。但当松开按钮时, 你使计时器失效。因此,如果之前松开按钮,计时器将停止。
否则,事件将启动,计时器将失效,因此当您松开按钮时,计时器已停止。

您可以在不使用计时器的情况下执行此操作:

-(IBAction)buttonDown:(id)sender {
    [self.label performSelector:@selector(setText:) withObject:@"0" afterDelay:3];
}

-(IBAction)buttonUp:(id)sender {
    [NSObject cancelPreviousPerformRequestsWithTarget:self.label];
}

第一种方法在触地时启动,第二种方法在触地时启动,两者都连接到同一个按钮。如果在3秒钟结束前将手指从按钮上提起,则第二种方法将触发并取消延迟选择器。

您可以这样做,而无需定时器:

-(IBAction)buttonDown:(id)sender {
    [self.label performSelector:@selector(setText:) withObject:@"0" afterDelay:3];
}

-(IBAction)buttonUp:(id)sender {
    [NSObject cancelPreviousPerformRequestsWithTarget:self.label];
}

第一种方法在触地时启动,第二种方法在触地时启动,两者都连接到同一个按钮。如果在3秒钟结束前将手指从按钮上提起,则第二种方法将触发并取消延迟选择器。

当按钮按下开始时,使用performSelector:withObject:afterDelay:method。释放按钮时,使用cancelPreviousPerformRequestsWithTarget:。这样,您就不必担心NSTimer,尽管它可能会被框架使用

当按钮按下开始时,使用PerformSelect:withObject:afterDelay:method。释放按钮时,使用cancelPreviousPerformRequestsWithTarget:。这样,您就不必担心NSTimer,尽管它可能会被框架使用

为什么不在3秒后启动计时器呢?我是从内存中工作的,我想可能间隔是一个枚举。但你是对的。为什么不在3秒钟后启动计时器呢?我是在记忆中工作的,我想可能间隔是一个枚举。但你是对的。