根据标签的值禁用按钮
Posted
技术标签:
【中文标题】根据标签的值禁用按钮【英文标题】:Disable a button based on a label's value 【发布时间】:2011-09-11 22:38:25 【问题描述】:我有一个名为label
的UILabel
,您可以使用两个按钮对其进行加减1。当您一直减到 0 时,我希望减号按钮停止工作。如果添加了值,我希望减号按钮再次工作。这是我用于加/减按钮的方法/代码:
- (IBAction)addButton1:(id)sender
[label setText:[NSString stringWithFormat:@"%d",[label.text intValue] +1]];
加/减方法的代码相同。除了末尾的 +1 是 -1。
我试过了:
- (IBAction)addButton1:(id)sender
int val = [label.text intValue];
[label setText:[NSString stringWithFormat:@"%d",[label.text intValue] +1]];
if(val - 1 <= 0)
UIButton *button = (UIButton *)sender;
[button setEnabled:NO];
【问题讨论】:
int val = [label.text intValue]; if(val - 1 @Kenny Lim 好的,我试过了。但它使 addButton: 方法在值为 = 到 -2 时停止工作。在这里我把我的代码贴在问题中,你能检查一下我是否做得正确吗?谢谢回复!! ;D 您似乎正在禁用+
按钮,而在我看来您想禁用-
按钮
@jean-Denis Muys ha 我知道我完全明白了!谢谢回复!但是我将代码添加到-
方法中,它可以工作,如果标签为 = 0,它会停止,但是当我添加到值时,假设我们按下按钮 3 次,所以现在值 = 到 3,我再次点击-
按钮,它什么也没做,所以我怎样才能让方法启动,或者如果值不是 0 又开始工作?非常感谢!
【参考方案1】:
试试
- (IBAction)addButton:(id)sender
if ( [[label text] intValue] == 0)
[minusButton setEnabled:YES];
[label setText:[NSString stringWithFormat:@"%d",[label.text intValue] +1]];
- (IBAction)subButton:(id)sender
[label setText:[NSString stringWithFormat:@"%d",[label.text intValue] -1]];
if ( [[label text] intValue] == 0)
[minusButton setEnabled:NO];
您只需要保留指向减号按钮的指针(只需创建一个IBOutlet
,然后使用 IB 将其链接到该按钮)
【讨论】:
hmm... 我试过了,但仍然没有运气:(我无法在 IB 中连接插座,因为我以编程方式创建了按钮和标签。我可以用另一种方式吗?谢谢回复! 如果您以编程方式创建按钮,那就更简单了! :) 你只需要保留按钮的指针。你可能做了类似UIButton *minusButton = [[UIButton alloc] initWithFrame:...];
的事情,不是吗?好吧,只需在你的类中创建一个UIButton *minusButton
字段,然后,当你创建按钮时,使用minusButton = ...
。这样,您将保留指向按钮的指针以供以后使用(例如启用/禁用)以上是关于根据标签的值禁用按钮的主要内容,如果未能解决你的问题,请参考以下文章
根据 UITextField 中的值禁用按钮只能工作一次(RxSwift)