我已经使用另一个Stack Overflow线程(UIButton Touch and Hold)中的代码在按钮(UIButton)上实现了重复任务。
由于各种原因,我想重复延迟。 definition of repeat delay
然而,我无法完全理解如何做到这一点。我对iPhone的编码相对较新。答案 0 :(得分:2)
在您建议的代码中受到启发,您可以使用以下内容:
制作一个NSTimer
,按下按钮时会启动,并且每x
秒启动一个方法。
标题(.h):
// Declare the timer and the needed IBActions in interface.
@interface className {
NSTimer * timer;
}
-(IBAction)theTouchDown(id)sender;
-(IBAction)theTouchUpInside(id)sender;
-(IBAction)theTouchUpOutside(id)sender;
// Give the timer properties.
@property (nonatomic, retain) NSTimer * timer;
实施文件(.m):
// Synthesize the timer
// ...
为“Touch Down”创建IBAction
以启动定时器,该定时器将每2秒触发一次动作方法。然后再进行另一次IBAction“Touch Up Inside”和“Touch Up Outside”以使计时器无效。
例如:
-(IBAction)theTouchDown {
self.timer = [NSTimer scheduledTimerWithTimeInterval:2.0
target:self
selector:@selector(action:)
userInfo:nil
repeats:NO];
}
-(IBAction)theTouchUpInside {
[self.timer invalidate];
self.timer = nil;
}
-(IBAction)theTouchUpOutside {
[self.timer invalidate];
self.timer = nil;
}
然后在NSTimer
触发的那个方法做你需要的任何事情:
-(void)action:(id)sender {
// ...
}