iOS:从superview中删除一个视图导致另一个视图被删除?

时间:2013-02-22 04:14:14

标签: iphone ios objective-c

这是一个非常奇怪的问题。我有5个子视图添加到UIViewController。其中一个需要删除,但当我这样做时,其余4个子视图中的一个也被删除。这需要我使用addSubview重新添加它。这两个观点没有任何关系。

这是一个已知的iOS SDK错误吗?它肯定会在iOS 6.1的模拟器上运行。

感谢。

2 个答案:

答案 0 :(得分:2)

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

  [subview_Name removeFromSuperview];

如果要从视图中删除all subviews,请使用此功能。

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

如果您要删除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]]

答案 1 :(得分:2)

在这里,在你的问题中没有提到你使用哪种方法删除subView,我给你简单的建议删除subView。

为每个Tag提供subView,例如,

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

您可以在其subView上访问(删除)任何Tag基础,例如

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

此提示可能对您有所帮助。