在以下情况中,隐藏视图的最佳方法是什么?
- 将框架设置为 CGRectZero
- 隐藏属性为 YES
- alpha 属性为 0.0
一个有没有另一个没有的好处?在运行时节省资源方面?特别是在具有可重用单元格的 UITableView 中,一个单元格与另一个单元格可能不需要某些子视图。
在以下情况中,隐藏视图的最佳方法是什么?
一个有没有另一个没有的好处?在运行时节省资源方面?特别是在具有可重用单元格的 UITableView 中,一个单元格与另一个单元格可能不需要某些子视图。
这取决于您想要/需要完成什么。对于可能会被大量重用的视图,结合view.hidden=TRUE
(我在这种情况下的选择)和/或view.alpha=0.0
,并且可能操纵 z-index 以确保您的视图不再位于前面。
我不确定将视图的框架设置为 的好处,CGRectZero
此时完全删除它可能更合适。
简而言之,如果您不需要它,请不要保留它。
更新:
提到表格单元格,还要考虑创建多个自定义单元格的可能性,特别是如果删除子视图会导致布局问题。可以根据您设置的任何标准创建每个单元格。
更新 2:
根据下面留下的评论,如果单元格很复杂,通过代码绘制单元格可能是正确的解决方案。
使用 UIView,alpha=0
具有可动画化的优点,而hidden=YES
没有。frame=CGRectZero
也是可动画的,但效果完全不同。动画alpha=0.0
时会导致视图淡出,而frame=CGRectZero
会导致它看起来消失在左上角。我不会担心任何这些技术的系统资源开销,因为它们都很轻量级。