0

如果自定义视图根据条件向自身添加了多个子视图if,然后setNeedsDisplay在该条件不再存在的情况下在此视图上调用a true,因此不会创建这些子视图,“旧”子视图是否会自动从内存中释放drawRect

或者,我应该担心检查子视图的存在,然后释放它们setNeedsDisplay吗?

我想最终我的问题是关于 的内存含义setNeedsDisplay,如果它有效地从内存中删除旧视图及其子视图,然后基本上从头开始重新创建视图?

4

1 回答 1

1

-setNeedsDisplay 只是设置了一个标志,上面写着“这个视图需要重绘”。据我所知,它不会保留或释放任何东西,也不会添加或删除任何子视图。

我不确定你想做什么,但听起来你太担心了。当您的应用程序的状态以需要重绘给定视图的方式发生变化时调用 -setNeedsDisplay。如果您随后从视图层次结构中删除了该视图,那应该不会导致任何问题。

于 2011-06-27T00:55:57.740 回答