如果标签落在错误的目标上,如何触发通知?

时间:2018-08-15 19:22:47

标签: swift sprite-kit skspritenode sklabelnode

在此拖放游戏(adapted from this tutorial)中,玩家必须将标签与正确的目标匹配。我对其进行了设置,以便如果触摸结束并且标签的中心在目标内,则将其从屏幕上移开,然后游戏重新开始。

override func touchesEnded(_ touches: Set<UITouch>, with event: UIEvent?) {

  if label.name == "letters" {
    if lettersBin.frame.contains(label.position) {
        // remove it and create a new label
        label.removeFromParent()
        setupDragLabel()

但是,如果玩家将错误的标签放到垃圾箱上,我想触发通知,所以:

else if label.name == "numbers" {
 if lettersBin.contains(label.position) ...

我会写些什么来完成这项工作?我可以在屏幕上显示另一个标签吗?

2 个答案:

答案 0 :(得分:0)

使用UIAlertController可能是最简单的。您可以将消息与按钮操作一起添加,以显示用户错了。

let converterAction = UIAlertController(title: "Your title here", message: "Your message to the user here", preferredStyle: .alert)
let okAction = UIAlertAction(title: "OK", style: .default){ _ in
    //Any custom action to happen here
}
converterAction.addAction(okAction)

present(converterAction, animated: true, completion: nil)

答案 1 :(得分:0)

如果您不想显示警报,则可以执行以下操作:

  1. 在情节提要和文件中添加标签。
  2. 将该标签设置为默认隐藏。
  3. 以编程方式设置label.isHidden = false并根据需要设置其文本。

我现在标记为“标签”的东西可以是任何东西,您甚至可以创建一组视图并一次隐藏/显示所有视图。想要同时显示进度指示器和“正在加载...”标签时很有用。