在事件iOS上禁用和启用按钮

时间:2015-12-14 15:09:41

标签: ios objective-c

我有一个stopclock app,希望startCountButton按钮在最初按下时被禁用,然后按下stopCountButton按钮再次启用它以便启动按钮只能按一次。这是我的代码

- (IBAction)startCount:(UIButton*)sender {
    countInt = 0;
    self.label.text = [NSString stringWithFormat:@"%i", countInt];
    timer = [NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(countTimer) userInfo:nil repeats:YES];
}

- (IBAction)stopCount:(UIButton*)sender {
    countInt = 0;
    [timer invalidate];
}

-(void)countTimer {
    countInt += 1;
    self.label.text = [NSString stringWithFormat:@"%i", countInt];
}

我需要添加哪些帮助?我不打算改变文本,只是禁用它

3 个答案:

答案 0 :(得分:5)

首先,您需要对按钮的引用。然后,将以下代码添加到startCount:

((UIButton *)sender).enabled = NO

并在stopCount:添加:

startCountButton.enabled = YES

答案 1 :(得分:1)

startCount:stopCount:都接受UIButton作为参数,但我对如何调用第二个参数感到困惑。

如果要禁用的按钮调用startCount:,则可以写下:

sender.enabled = NO;

但是stopCount:很棘手,因为很明显它不能被按钮调用,因为它刚刚被禁用。如果从另一个按钮调用stopCount:(我猜它必须是这样),那么你必须存储对第一个按钮的引用才能重新启用它。然后你可以这样做:

self.disabledButton.enabled = YES;

答案 2 :(得分:0)

如果enable适当,您可以启用/禁用按钮:

startCountButton.enabled = NO