如何有效地禁用按钮并仅显示消息?

时间:2013-11-19 19:33:11

标签: ios objective-c

我有一个名为LevelViewController的视图控制器,我在其上插入按钮,表示从1到4的级别。当玩家点击关卡按钮时,它会将其分段以在“模型方式”中以“级别编号”标识符查看名为GameViewController的控制器。虽然玩家必须达到特定分数才能解锁其他按钮并允许按钮使用标识符对GameViewController执行segue(分数数据保存在NSUserDefault对象上)。

到目前为止,我想到的是通过Xcode禁用按钮并在玩家达到想要的分数后以编程方式启用它们。 上述解决方案很简单,可以节省我的时间,但我真的认为它没有为消费者提供太多细节,也没有点击,这意味着我无法显示解释消息的警报视图窗口。所以我想也许有人可以给我更多的想法?提前致谢!

1 个答案:

答案 0 :(得分:1)

要让用户知道其他按钮存在但当前已禁用,请将按钮的alpha设置为0.5以淡化它。然后你可以有一个布尔值来指示按钮是否被禁用。 然后在每个按钮的回调中,如果布尔值设置为表示禁用,则显示一条消息,否则执行正常的按钮操作。

// level1Button and level2Button are UIButton IBOutlets... 
// Let level 2 be disabled

- (void)viewDidLoad {
    level2Button.alpha = 0.5;
    level1Enabled = TRUE;
    level2Enabled = FALSE;

    [super viewDidLoad];
}


- (IBAction) level1Button:(id)sender {
    if (level1Enabled) {
        // Go to level 1...
    } else {
        // Show alert...
    }
}

- (IBAction) level2Button:(id)sender {
    if (level2Enabled) {
        // Go to level 1...
    } else {
        // Show alert...
    }
}