iOS:从超级视图中删除一个视图会导致另一个视图被删除?

问题描述:

这是一个很奇怪的问题。我有5个子视图添加到UIViewController。其中一个需要被删除,但是当我这样做时,其余4个子视图中的一个也被删除。这需要我使用addSubview重新添加它。这两个观点没有任何关系。iOS:从超级视图中删除一个视图会导致另一个视图被删除?

这是一个已知的iOS SDK错误?它确实发生在iOS 6.1的模拟器上。

谢谢。

+4

把你的代码否则它不可能调试! – 2013-02-22 04:15:12

+0

你确定你没有意外让这个视图消失,你正在删除的视图的子视图? – rdelmar 2013-02-22 04:16:03

+0

您使用哪种方法删除子视图? – damithH 2013-02-22 04:17:01

在这里,你的问题没有提及这种方法您使用删除子视图这些的话,我给你删除子视图简单的建议。

给每个subView诸如此类,

self.subView1.tag = 1; 
self.subView2.tag = 2; 
. 
. 
. 
. 
self.subViewN.tag = N; 

,您可以访问其Tag删除)任何subView基地,诸如此类

[[self.view viewWithTag:1] removeFromSuperview]; 

这提示可能有帮助的Tag为你。

您可以使用以下代码删除single subview

[subview_Name removeFromSuperview]; 

如果你想删除all subviews形式的视图然后使用这个。如果你想删除all subview of particular class然后使用这个。

NSArray *subViewArray = [self.view subviews]; 
    for (id obj in subViewArray) 
    { 
    if([obj isKindOfClass:[classname class]]) 
     { 
      [obj removeFromSuperview]; 
     } 

    } 

例如:如果你想类remove subviewUIImageView然后用这个代替if条件。

[obj isKindOfClass:[UIImageView class]]