这个问题非常基础。从视图层级中移除一个UIView
和隐藏一个UIView
之间有什么性能差异?
我读到过,不需要的视图应该从视图层级中移除。我目前遇到的情况是,一个UIButton
有时应该是可见的。什么时候应该隐藏UIButton
,什么时候应该将其从其父视图中移除?
改变视图层次结构是否代价高昂?
UIButton
来说,内存影响也不是很大。如果您只切换 hidden
属性,那么代码肯定更简单。hidden
属性还有另一个好处,就是它支持动画效果!在最初的问题和(理所当然地)被接受的答案之间已经过去了一些年头。让我再添加一个因素:与此同时,苹果公司推出了AutoLayout,据说在某些(深层)子视图层次结构中可能会带来相当大的性能损失。
如果您正在使用AutoLayout,则隐藏的视图仍将被布局,而不是已删除的视图(其引用保存在某个地方)。根据您的情况,这可能会导致性能差异。