如果自定义视图基于条件if向其自身添加了几个子视图,然后在条件不再为true的该视图上调用setNeedsDisplay,因此不会创建这些子视图,那么在drawRect期间是否会自动从内存中释放旧的子视图
或者,我是否应该检查是否存在子视图,然后释放它们,然后使用setNeedsDisplay
我猜最终我的问题是关于setNeedsDisplay的内存影响,如果它有效地从内存中删除旧视图及其子视图,然后本质上从头开始重新创建视图?
发布于 2011-06-27 08:55:58
-setNeedsDisplay只是设置了一个标志,上面写着“这个视图需要重新绘制”。据我所知,它不会保留或释放任何内容,也不会添加或删除任何子视图。
我不知道你想做什么,但听起来你担心得太多了。当你的应用程序的状态发生了变化,需要重新绘制给定的视图时,调用-setNeedsDisplay。如果您随后从视图层次结构中删除了该视图,应该不会造成任何问题。
https://stackoverflow.com/questions/6487701
复制相似问题