如何在不重新加载的情况下从超级视图中删除视图?

How to remove a view from superview, without reloading?

我有一个游戏,我想移除一个障碍。但是当我这样做时,视图会完全刷新自己。但我希望其他子视图保留在它们所在的位置。

要删除此子视图,我使用:

obstacles.removeFromSuperview()

然后它在屏幕上消失,但之后所有其他子视图都设置为它们的原始位置..

还有其他方法吗,还是必须保存位置,重新加载后重新设置?那会不会看起来很糟糕而且有错误?

顺便说一句,当我将我的视图添加到子视图时,它是一个 let。不知道重要不重要..

如果其他子视图移动,则意味着它们的位置取决于您删除的视图。使用自动布局时要考虑到 removeFromSuperview 会删除任何引用您要删除的视图(或其子视图)的约束。