等效于 SpriteKit 中的弹出框

Posted

技术标签:

【中文标题】等效于 SpriteKit 中的弹出框【英文标题】:Equivalent of a popover in SpriteKit 【发布时间】:2020-09-06 02:39:28 【问题描述】:

我正在使用 Swift 5、SpriteKit、SKTileMap。我想使用等效的弹出框。我使用这个术语是因为我在其他应用程序中经常使用弹出框。基本上,会出现一个小窗口,您阅读一些内容并按 OK,或者添加一些信息并按 OK。我试图弄清楚如何在 SpriteKit 中做类似的事情。

目标是,我希望用户长按一个磁贴,然后会弹出一个小框,其中包含有关磁贴的信息。什么是地形?有哪些资源?有城市吗?有球员吗?等等。它不一定是一个视图,但我猜这是要走的路,因为不仅可以有相当多的文本,我可以看到有一个按钮可以关闭,也许还有一些小图形,例如与资源对应的符号等。这就是我已经拥有的。我有一个有效的长按手势识别器。我已经可以在模拟器的控制台上打印我想要的所有信息。我需要弄清楚一些事情。

    必需:创建窗口并填写信息。 可选:锚定到平铺和/或屏幕中心。我还没有决定最佳解决方案。 可选:暗淡背景(可能只是一些 alpha 调整)

我当前的代码实际上运行得非常流畅。我有一个很好的相机捏缩放和一个很好的平移手势。我从 JSON 文件加载我的地​​图。我实际上将它加载到核心数据、数据库中,并从对数据库的查询中提取。这样,如果您执行任何操作,它只会命中数据库。瓷砖 5,5 上有什么?只需查询数据库。它工作得很好。我只是不知道如何在 SpriteKit 中做弹出窗口。我尝试在我的地图所在的内容视图中添加一个实际的弹出框,但它只会使屏幕变暗一点。我不认为这是一个好锚。

【问题讨论】:

我在一夜之间解决了我的问题。我向视图控制器添加了一个工具栏,其中包含我的 SpriteKit 地图的容器视图。无论如何,我打算添加这个工具栏,它为弹出视图提供了一个很好的锚点。当前配置是 MapViewController,由 MapViewController.swift 处理它的代码。然后是一个 MapScene.swift,它是 SpriteKit 的实现。 contentView 是 SKView。如果我什么都没听到,我会使用当前的解决方案,因为我可以自定义很多弹出视图,这正是我想要的信息框。如果您有其他聪明的想法,请告诉我 【参考方案1】:

在 HIG“人机界面指南”中,它们被称为“警报”或警报表,您可以使用简单的代码创建警报

let alert = UIAlertController(title: "Did you bring your towel?", message: "It's recommended you bring your towel before continuing.", preferredStyle: .alert)

alert.addAction(UIAlertAction(title: "yes", style: .default, handler: nil))
alert.addAction(UIAlertAction(title: "No", style: .cancel, handler: nil))

self.present(alert, animated: true)

您可以从此链接https://learnappmaking.com/uialertcontroller-alerts-swift-how-to/了解更多如何编程、样式等

【讨论】:

以上是关于等效于 SpriteKit 中的弹出框的主要内容,如果未能解决你的问题,请参考以下文章

java swing Jpanel 怎么添加一个Jdialog弹出框

在 didSelectRowAtIndexPath 上关闭 ios 中的弹出框

iOS 5 中的弹出框变化?

CollectionView 中的弹出框

更改从 Swift 中的故事板创建的弹出框的箭头颜色

iPhone的弹出框控制器[关闭]