如何在objective-c iphone SDK中创建经过时间的按钮。更具体一点,此按钮将在文本中显示自您按住按钮后经过的时间。因此,对于时间的推移,您仍然必须用手指按下按钮,而不是放手。一旦放手,计时器应重新启动。注意:对于iPhone,不是mac。
答案 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记录并将其打印在系统上,然后停止计时器