MAb*_*bas 1 iphone cocoa-touch uikit uiview
从超级视图中删除视图时会触发什么事件?其子视图是否收到任何消息?例如,我将subview2和subview3添加到subview1中,如下所示
super_view - > subview1 - > subview2 - > subview3
如果我删除subview1例如
[subview1 removeFromSuperview];
Run Code Online (Sandbox Code Playgroud)
它的子视图(subview2和subview3)接收什么事件?
有没有办法让子视图知道他们的超级视图被删除了?
它取决于subview2和subview3的保留计数.如果你通过[[UIView alloc] initWithFrame:frame]创建它们,然后将它们添加为子视图,它们的保留计数为2.(或者3,如果你在保留属性中保留一个引用,即self.subview2 = [...
因此,如果您希望在发布subview1时释放它们,那么确保在将它们添加为子视图后再给它们另一个版本,这样它们的保留计数就是添加为子视图的唯一一个.像这样......
UIView* subview2 = [[UIView alloc] initWithFrame:myFrame];
[subview1 addSubview:subview2];
[subview2 release];
Run Code Online (Sandbox Code Playgroud)