UIView隐藏的财产......还有更多吗?

aka*_*aru 11 iphone events layout uiview ios

来自ActionScript,我会将Sprites设置为visible = false,以防止它们在布局等方面进行计算,并确保它们不会响应事件.

在iOS开发中,我继续这样做 - 如果不需要UIView,我可以将其alpha设置为零,然后设置hidden = true.我想知道自己是在浪费时间,还是知道这有什么好处.在我目前的项目中,我正在使用UIImageViews这样做,无论如何都没有响应事件.

将隐藏设置为真正的良好实践,还是仅仅是额外的开销?

Max*_*Max 22

这是最佳选择,因为将hidden设置为true会从渲染循环中删除视图.将alpha设置为0只会使视图透明.

  • 使alpha = 0.0也使它隐藏=引擎盖下的YES,所以它也会从渲染循环中删除它;) (3认同)
  • @Javy实际上,Apple指定一旦alpha(在我的头顶上)下降.1或.05,对象将不再响应触摸事件. (2认同)

Col*_*gic 6

如果您不再需要它,那么您应该从内存中正确删除它.在这种情况下,你只需动画它的alpha(使其看起来很好),然后解除它.

如果你自动释放它,那么你所要做的就是从superview中删除它,它的保留将命中0并被解除分配.

[UIView animateWithDuration:.5
                 animations: ^ {
                      [myView setAlpha:0];
                 }
                 completion: ^ (BOOL finished) {
                      [myView removeFromSuperview];
                 }];
Run Code Online (Sandbox Code Playgroud)