我有一个包含值“170.00”的UILabel。我现在想创建一个按钮,当按下3秒时,将值设置为“0”。显然,使用按钮很容易更改标签的值,但是如何添加必须按下的条件至少3秒?
最终结果应类似于计算器的“重置”按钮,该按钮将在按下3秒或更长时间后重置存储的用户值。
我甚至不知道从哪里开始?的NSTimer?
谢谢!
答案 0 :(得分:2)
正确,使用NSTimer。我不打算为你编写代码,但你应该做以下事情:
答案 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
(虽然它可能被框架使用)