删除除命名的所有子视图
Posted
技术标签:
【中文标题】删除除命名的所有子视图【英文标题】:Remove all subviews except named 【发布时间】:2014-12-31 23:59:41 【问题描述】:我想删除我的 UIViewController 的所有子视图,除了两个名为 toolBarOne
和 toolBarTwo
的子视图。我不确定我应该从哪里开始。你的建议是什么?谢谢。
【问题讨论】:
【参考方案1】:出于几个原因,我不会完全按照索尼建议的方式去做。
通过这种方式,您将删除子视图,同时使用相同的子视图数组进行枚举。
您可能还删除了与布局相关的子视图,即 UILayoutGuide
,您没有明确添加到视图中。
相反,我建议迭代一个单独的数组,其中包含原始 self.view.subviews
数组的副本,并排除 UILayoutSupport
类型的任何子视图:
var subviews = self.view.subviews
for subview in subviews as [UIView]
if subview != toolBarOne && subview != toolBarTwo && !(subview is UILayoutSupport)
subview.removeFromSuperview()
【讨论】:
【参考方案2】: for subView in view.subviews as [UIView]
if subView != toolBarOne && subView != toolBarTwo
subView.removeFromSuperview()
【讨论】:
以上是关于删除除命名的所有子视图的主要内容,如果未能解决你的问题,请参考以下文章
删除 cell.contentview 上的所有子视图,标签除外