UIButton按下3秒钟

时间:2013-12-09 23:50:56

标签: ios uibutton

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

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

我甚至不知道从哪里开始?的NSTimer?

谢谢!

4 个答案:

答案 0 :(得分:2)

正确,使用NSTimer。我不打算为你编写代码,但你应该做以下事情:

  1. 按下按钮时,启动计时器
  2. 释放按钮时,结束/清除计时器。
  3. NSTimer使选择器按间隔运行。因此,您可以在3秒后运行它,如果它到达该方法,您可以更改UILabel文本。

答案 1 :(得分:2)

例如,您可以使用NSTimer。当按下按钮(使用相应的IBAction事件)时,启动NSTimer,在3秒后执行某些操作。但是当释放按钮时, 你使计时器无效。因此,如果之前释放按钮,则计时器停止。 否则,事件启动并且计时器无效,因此当您释放按钮时,计时器已经停止。

答案 2 :(得分:2)

你可以在没有计时器的情况下这样做:

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

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

第一种方法是在touchDown上触发,第二种方法是在内部触摸(都连接到同一个按钮)。如果在3秒钟之前将手指从按钮上移开,则第二种方法会触发并取消延迟选择器。

答案 3 :(得分:1)

按下按钮开始时使用performSelector:withObject:afterDelay:方法。释放按钮时使用cancelPreviousPerformRequestsWithTarget:。这样,您不需要关心NSTimer(虽然它可能被框架使用)