【发布时间】:2014-12-31 23:59:41
【问题描述】:
我想删除我的 UIViewController 的所有子视图,除了两个名为 toolBarOne 和 toolBarTwo 的子视图。我不确定我应该从哪里开始。你的建议是什么?谢谢。
【问题讨论】:
标签: ios xcode swift uiview subview
我想删除我的 UIViewController 的所有子视图,除了两个名为 toolBarOne 和 toolBarTwo 的子视图。我不确定我应该从哪里开始。你的建议是什么?谢谢。
【问题讨论】:
标签: ios xcode swift uiview subview
出于几个原因,我不会完全按照索尼建议的方式去做。
通过这种方式,您将删除子视图,同时使用相同的子视图数组进行枚举。
您可能还删除了与布局相关的子视图,即 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()
}
}
【讨论】:
for subView in view.subviews as [UIView] {
if subView != toolBarOne && subView != toolBarTwo {
subView.removeFromSuperview()
}
}
【讨论】: