【问题标题】:How to disable a button efficiently and only show a message?如何有效地禁用按钮并只显示一条消息?
【发布时间】:2013-11-19 19:33:10
【问题描述】:

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

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

【问题讨论】:

  • 使用自定义按钮,其禁用图像是红色 X 或类似的。

标签: ios objective-c


【解决方案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...
    }
}

【讨论】:

  • 感谢您的回复,关于将 alpha 设置为 0.5 是不必要的,当您禁用 Xcode 上的按钮时,它会自动使其透明,正如我之前提到的,当您禁用按钮 2 时,它不会可点击。
  • 据我了解,您需要该按钮仍可单击以在禁用时显示警报。因此,我建议更改 alpha 以使按钮仍可单击(以编程方式禁用将使其不可单击)并显示警报以通知用户当前级别已锁定。 HTH
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-05-11
  • 2015-09-04
  • 2020-10-06
  • 2021-09-28
相关资源
最近更新 更多