屏幕定位与隐藏

时间:2016-02-28 13:35:53

标签: ios swift animation memory interface-builder

我正在使用界面构建器在Xcode中构建应用程序。一个VC有一些我在屏幕外定位的对象(例如,-600导致前导边距)。按下按钮,它们将被动画显示在视图中。

我的问题是,将视图移出屏幕有什么影响?它占用了记忆吗?我们应该在他们动画回到一边之后隐藏这些观点吗?

1 个答案:

答案 0 :(得分:1)

任何已分配和初始化的视图都将占用内存,不在屏幕上。这在Obj-c中更明显,因为当你调用[UIView alloc] init]时,它在swift UIView(frame: )中仍然是相同的。

在将视图添加为子视图之前,视图不会绘制其图层。如果默认情况下视图不在父视图中,则视图仍将自行绘制。您可以将父视图设置为clipsToBounds = YES(swift clipsToBounds = true),并且不会在屏幕上绘制任何子视图,因为子视图不会绘制图层。不确定是否值得努力做到这一点,因为你只是临时关闭屏幕然后动画。

如果可以,你应该在屏幕上设置动画之前实例化视图,你应该'removeFromSuperview'并设置为nil,或者从数组中删除它们,但是一旦动画完成就存储它们。