足以从超级视图中删除视图?
Posted
技术标签:
【中文标题】足以从超级视图中删除视图?【英文标题】:Enough to remove a view from superview? 【发布时间】:2016-09-13 18:42:16 【问题描述】:我正在查看一个带有动画的视图。单击按钮时,视图会像这样添加:
self.view.addSubview(view)
当我想让视图消失时,我只需运行:
self.view.viewWithTag(tag).removeFromSuperview()
我的问题是,当视图被删除时,它会被释放吗?我觉得,但仅在模拟器中,我的其他 UI 操作更慢且有点滞后。我怀疑动画还在被移除的视图中运行?
【问题讨论】:
addSublayers
?你是说addSubview
吗?
是的,抱歉 ;o)
已更正,感谢提醒。
【参考方案1】:
如果它是实例变量,那么如果它有任何引用或者它是强的,它将不会被释放。它已从 superview 中删除,但存在于内存中,直到类存在。如果您将其声明为本地并将其初始化,那么我认为它将被释放!
【讨论】:
你可以设置yourview = nil
!!!!!!!!!如果你使用arc
,那么你不需要手动释放任何东西。否则在过去 non arc
项目中有方法 release
!
当不再有对该对象的强引用时,该对象将被释放。就是这样。如果 ivar 很弱并且没有其他引用,您可以使用实例变量并将其释放。
是的,如果没有强引用,那么它将被释放,但如果它没有引用!
这无济于事,弱也无济于事。如果我在删除之前停止视图中的动画,之后它会运行良好。以上是关于足以从超级视图中删除视图?的主要内容,如果未能解决你的问题,请参考以下文章