removeFromSuperview不会删除视图。但是这个观点并不存在于(self.view.subviews)中

时间:2014-03-16 09:57:57

标签: ios iphone objective-c uiview rubymotion

我真的需要你的帮助。因为“removeFromSuperview”没有删除视图。但是(self.view.subviews)中不存在该视图。

mycode的(rubymotion)

@back_view = UIView.alloc.initWithFrame(CGRectMake(0, 0, boundsSize.width, boundsSize.height))
self.view.addSubview(@back_view)

p "A #{self.view.subviews}"

@back_view.removeFromSuperview

p "B #{self.view.subviews}"

控制台

A
[PXUITableView_UITableView:0xd3be600, PXUIView_UIView:0x10cc7c30]

B
[PXUITableView_UITableView:0xd3be600]

所以,removeFromSuperview正在发挥作用。但不是删除视图。

为什么?

1 个答案:

答案 0 :(得分:0)

在init方法之后,p @back_view获取@back_view实例指针,并在removeFromSuper之后获取@back_view和@back_view.superView。如果@back_view实例指针在删除之前不在子视图的日志中,或者@ back_view.superView不是nil,那么可能你创建了多个具有相同帧的视图;