时间已过了iphone sdk中的按钮

时间:2012-02-15 05:06:38

标签: iphone ios cocoa-touch

如何在objective-c iphone SDK中创建经过时间的按钮。更具体一点,此按钮将在文本中显示自您按住按钮后经过的时间。因此,对于时间的推移,您仍然必须用手指按下按钮,而不是放手。一旦放手,计时器应重新启动。注意:对于iPhone,不是mac。

2 个答案:

答案 0 :(得分:0)

将这两种方法用于按钮事件。当您按下按钮时会调用touchDown,当您从按钮上抬起手指时会调出touchUp。计算这两种方法之间的时差。您也可以在touchDown中启动计时器,然后在touchUp停止/重新启动计时器。

//connect this action with Touch up inside
- (IBAction)touchUp:(id)sender {
    NSLog(@"up");
}

//connect this to tocuh down
- (IBAction)touchDown:(id)sender{
    NSLog(@"down");
}

答案 1 :(得分:0)

首先,在头文件中设置一个int变量

@property int timerCount;
@property (nonatomic, strong)NSTimer *yourTimer;

别忘了在实现文件中合成它 (如果您仍然使用较低的SDK,则可以将“strong”更改为“保留”)

然后按下按钮和它的功能

UIButton *yourButton = [[UIButton alloc]initWithFrame:CGRectMake(0, 0, 100, 100)];
    [yourButton setTag:1];
    [yourButton setBackgroundColor:[UIColor redColor]];
    [yourButton addTarget:self action:@selector(buttonHoldDown) forControlEvents:UIControlEventTouchDown];
    [yourButton addTarget:self action:@selector(buttonRelease) forControlEvents:UIControlEventTouchUpInside];
    [self.view addSubview:yourButton];

这样,你在你的视图上用红色添加了一个x:0 y:0的按钮,包含两个动作目标,它在内部向下触及

当你触摸按钮时,会触发buttonHoldDown函数,当你释放按钮时,会触发buttonRelease函数

然后,填写函数

-(void)buttonHoldDown
{
    yourTimer = [NSTimer timerWithTimeInterval:1 target:self selector:@selector(timerStart) userInfo:nil repeats:NO];
    timerCount = 0;
}
-(void)buttonHoldUp
{
    NSLog(@"the timer stops at %d seconds", timerCount);
    timerCount = 0;
    [yourTimer invalidate];
}
-(void)timerStart
{
    timerCount++;
}

这样,当你触摸按钮时,程序会创建一个计时器并将int timerCount重新设置为0,这将随着计时器在“timerStart”函数中的计时而增加。

当您释放按钮时,该功能将跟踪您当前的timerCount记录并将其打印在系统上,然后停止计时器