0

在以下情况中,隐藏视图的最佳方法是什么?

  • 将框架设置为 CGRectZero
  • 隐藏属性为 YES
  • alpha 属性为 0.0

一个有没有另一个没有的好处?在运行时节省资源方面?特别是在具有可重用单元格的 UITableView 中,一个单元格与另一个单元格可能不需要某些子视图。

4

2 回答 2

2

这取决于您想要/需要完成什么。对于可能会被大量重用的视图,结合view.hidden=TRUE(我在这种情况下的选择)和/或view.alpha=0.0,并且可能操纵 z-index 以确保您的视图不再位于前面。

我不确定将视图的框架设置为 的好处,CGRectZero此时完全删除它可能更合适。

简而言之,如果您不需要它,请不要保留它。

更新

提到表格单元格,还要考虑创建多个自定义单元格的可能性,特别是如果删除子视图会导致布局问题。可以根据您设置的任何标准创建每个单元格。

更新 2

根据下面留下的评论,如果单元格很复杂,通过代码绘制单元格可能是正确的解决方案。

于 2013-03-03T23:28:02.970 回答
0

使用 UIView,alpha=0具有可动画化的优点,而hidden=YES没有。frame=CGRectZero也是可动画的,但效果完全不同。动画alpha=0.0时会导致视图淡出,而frame=CGRectZero会导致它看起来消失在左上角。我不会担心任何这些技术的系统资源开销,因为它们都很轻量级。

于 2013-03-03T23:28:41.207 回答