2017-03-03 45 views
0

我把一个名为myView的视图在superview上,之后,我编码myView = nil,但不能从超级视图中移除,并且仍然有像myView这样的视图出现在超级视图中,请帮助我,告诉我为什么。myview = nil但仍然有一个超视图的观点

+1

你必须调用myView.removeFromSuperview() –

+0

谢谢,但我知道如何删除,什么让我感到困惑的是,为什么我让我的视图=零,仍然有一个超级视图 –

回答

2

你的问题是,为什么myView = nil不会删除从上海华视图(因此,为什么它不释放它)。

这很简单,当你做viewA addSubview:viewB时,你创建了一个从viewAviewB的参考。

所以当你做viewB = nil,你仍然有一个从viewAviewB的指针,所以ARC不释放视图。

这就是为什么你应该拨打[viewB removeFromSuperview]删除指针。

+0

谢谢,它帮助我 –

+0

欢迎您:)你能标记问题解决? :) – CZ54

+0

即时通讯对不起,你能告诉我如何使问题解决?我是新手 –

0

请使其零使用[myView removeFromSuperView];

+0

谢谢你,但我知道如何删除,什么让我感到困惑的是,为什么我让我的视图=零,仍然有超视图的观点 –

+0

有时超视图不布局,如果你使子视图无 –

+0

它不是某个时候,它从来没有布局,当我使子视图零,以及如何强制superview布局 –

0

使用标签来你要删除,并与该标签的参考删除视图的视图之前从超级视图您的视图。 喜欢:

tempView.tag == 1; 
for(UIView *temp in [self.view subviews]) { 
if (temp.tag == 1) { 
    [temp removeFromSuperview]; 
} 
}