如果自定义视图根据条件if
向自身添加多个子视图,稍后会在此视图中调用setNeedsDisplay
,其中条件不再是true
,因此这些子视图未创建,是drawRect
期间内存中自动释放的“旧”子视图吗?
或者,我应该担心检查是否存在子视图,然后发布它们,然后setNeedsDisplay
?
我想最终我的问题是关于setNeedsDisplay
的内存含义,如果它有效地从内存中删除旧视图及其子视图,然后从头开始重新创建视图?
答案 0 :(得分:1)
-setNeedsDisplay只设置一个标记,表示“此视图需要重绘”。据我所知,它不会保留或释放任何内容,也不会添加或删除任何子视图。
我不确定你要做什么,但听起来你太担心了。当应用程序的状态以需要重绘给定视图的方式更改时,调用-setNeedsDisplay。如果您随后从视图层次结构中删除了该视图,则不会导致任何问题。