UIView的性能:removeFromSuperview VS隐藏

这个问题真的很基础。 从视图层次中删除UIView和隐藏UIView之间的性能差异是什么?

我已经阅读,不需要的视图应该从视图层次结构中删除。 我目前有一个UIButton应该有时可见的情况。 什么时候隐藏UIButton ,什么时候从超级视图中删除?

更改视图层次结构是否昂贵?

如果你需要在显示和隐藏子视图之间切换,最好的办法就是隐藏它。 对于UIButton ,内存的影响并不是那么好。 如果你只是切换hidden属性,代码肯定更简单。

而且,你还可以获得hidden属性是可以animation的!

我已经在iOS6 iPad mini上做了一个实验,有一个很大的滚动视图,它有很多丰富的内容(包括图像,阴影,渐变图层,图案化的背景图像,你知道,那些devise师:)),我发现视图.hidden = YES≠[查看removeFromSuperview]。

我本来以为隐藏设置为YES会使得视图不被渲染/绘制,因此隐藏很多隐藏视图就不会影响效率。 但实际的结果是:1)如果我在大滚动视图中设置隐藏视图为隐藏(当它们返回到可见区域时取消隐藏),滚动根本不是光滑/连续的。 当它自然减速时,看起来非常激动。 2)如果我从滚动视图中删除了离屏视图(但仍然保留在跟踪数组的内存中,所以当他们回来时,他们可以立即添加),滚动显然是平滑的。