按住iOS按钮

时间:2013-08-17 14:34:10

标签: cocoa-touch ios6

我是IOS开发的新手,并且拥有一些java和Arduino编程经验。我正在研究一个简单的莫尔斯代码项目。如何跟踪iOS中按下按钮的时间?我是否只需要一个大循环来持续扫描按下按钮?

2 个答案:

答案 0 :(得分:3)

我会做这样的事情:

向您的班级添加一个属性,以存储最新的触摸日期。最好是.m - 文件中的类扩展名。

@interface YourViewController ()
@property (nonatomic, strong) NSDate *buttonTouchDownDate;
@end

以编程方式或使用界面构建器将按钮连接到Touch DownTouch Up Inside控件事件。这是详细描述的here

然后存储按下按钮的日期。当手指抬起时,计算存储日期与现在之间的时间间隔。

- (IBAction)buttonDidTouchDown:(id)sender
{
    self.buttonTouchDownDate = [NSDate date];
}
- (IBAction)buttonDidTouchUp:(id)sender
{
    // Will return a negative value, so we use the ABS-macro.
    NSTimeInterval timeInterval = ABS([self.buttonTouchDownDate timeIntervalSinceNow]); 
    NSLog(@"Time interval: %f", timeInterval);    
}

答案 1 :(得分:0)

你必须结合2个功能结果:

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event

你得到了开始时间。

并且

- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {
  if (self.touchInside) {
    NSLog(@"TouchUpInside");
  } else {
    NSLog(@"TouchUpOutside");
  }
}

如果touchupinside比你获得“endtime”并计算持续时间。