繁体   English   中英

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

[英]iOS: Removing one view from superview causes another to get removed?

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

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

谢谢。

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

  [subview_Name removeFromSuperview];

如果要从all subviews删除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 subview UIImageView类的remove subview ,请使用if条件替换它。

[obj isKindOfClass:[UIImageView class]]

在这里,在您的问题中不要提及您用于删除subView的方法,因此,我为您提供删除subView的简单建议。

给每个subView Tag ,例如,

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

并且您可以基于其Tag访问( 删除 )任何subView ,例如

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

这些提示可能对您有所帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM