我正在制作一个文字游戏,有三个提示,每个花费10个硬币,让我们说玩家只有8个硬币,然后他不能使用第2和第3个提示,
因此,当点击提示按钮时,我将如何阻止操作:这样它不会显示提示或者它不会更改为其他按钮图像
代码:
- (IBAction)secondHintq:(id)sender {
// - Here image is changing when button is clicked - this has to be locked
[_candletwo setImage:[UIImage imageNamed:@"candle2_03.png"] forState:UIControlStateNormal];
// This is the text that is displayed when clicked - this has to be locked
hintView.text = @"Type in text here 2";
if(!btn2Pressed) {
if((coins -10) >= 0){
coins = coins -10;
score = score -2;
btn2Pressed = true;
coinsLabel.text = [NSString stringWithFormat:@"%d",coins];
}
else{
//Show an alert that the user has not enough coins
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"TITLE" message:@"MESSAGE" delegate:nil cancelButtonTitle:@"RETURN BUTTON" otherButtonTitles:nil];
[alert show];
}
}
这是怎么做到的?
答案 0 :(得分:1)
可能会移动您的代码吗?
if((coins -10) >= 0){
[_candletwo setImage:[UIImage imageNamed:@"candle2_03.png"] forState:UIControlStateNormal];
// This is the text that is displayed when clicked - this has to be locked
hintView.text = @"Type in text here 2";
}
答案 1 :(得分:0)
Remove
target action
button
excute
[yourBtn removeTarget:self action:@selector(secondHintq:) forControlEvents:UIControlEventTouchUpInside]
时不需要[yourBtn addTarget:self action:@selector(secondHintq:) forControlEvents:UIControlEventTouchUpInside]
这样:
userInteractionEnabled property
在需要时添加目标,如下所示:
yourBtn.userInteractionEnabled = NO;
编辑:最佳选项使用{{1}}。这些禁止在按钮上进行任何选择
{{1}}
答案 2 :(得分:0)
试试这个,
button.userInteractionEnabled = NO;
答案 3 :(得分:0)
//Check for coints validity in any button tap event
- (BOOL)checkValidCoins {
if(coins>=10) {
return YES;
}
return NO;
}
- (IBAction)secondHintq:(id)sender {
UIButton *btn = (UIButton *)sender;
if([self checkValidCoins] && !btn.selected) {
hintView.text = @"Type in text here 2";
[_candletwo setImage:[UIImage imageNamed:@"candle2_03.png"] forState:UIControlStateNormal];
coins -= 10;
score -= 2;
btn.selected = YES;
coinsLabel.text = [NSString stringWithFormat:@"%d",coins];
}else{
if(btn.selected) {
// Show an alert that the user has not enough coins
}else{
// Hint already visible
}
}
}
答案 4 :(得分:0)
或者,您可以像这样切换button.enabled属性:
button.enabled = NO