在自定义UIView中调用removeFromSuperview作为[self removeFromSuperview]正确地从超级视图中删除自己,就像在超级视图中执行[self.customView removeFromSuperview]一样?
我已经检查过,它确实做了同样的事情,但我还是想确定一下!
答案 0 :(得分:2)
不确定。 UIView
实例如何收到removeFromSuperview
消息是无关紧要的 - 无论是从外部调用还是在实例内调用它都会完全相同。
只要没有其他强引用,视图也会在从superview中删除后以完全相同的方式释放。如果需要,可以通过在视图的子类中实现dealloc
方法,并为其添加NSLog
或断点来自行测试。
您可以致电removeFromSuperview
时唯一值得注意的例外情况是从不在视图的drawRect:
方法as stated in the documentation内调用 。这样做会导致未定义的行为。