隐藏UIView的最有效方法

时间:2013-03-03 23:21:03

标签: cocoa-touch uiview uitableview

以下是隐藏视图的最佳方式?

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

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

2 个答案:

答案 0 :(得分:2)

这取决于您想要/需要完成的任务。对于可能会重复使用的视图,view.hidden=TRUE(我选择此案例)和/或view.alpha=0.0的组合,可能会操纵z-index以确保您的视图不再位于前面。

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

简而言之,如果你不需要它,就不要保留它。

<强>更新

使用提及表格单元格,还要考虑创建多个custom cells的可能性,尤其是在删除子视图导致布局问题时。可以根据您设置的任何条件创建每个单元格。

更新2

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

答案 1 :(得分:0)

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