我在想也许这样的事可能有用:
for (UIView* b in self.view.subviews)
{
[b removeFromSuperview];
}
我想删除所有类型的子视图。 UIImages,按钮,文本域等。
答案 0 :(得分:243)
[self.view.subviews makeObjectsPerformSelector: @selector(removeFromSuperview)];
它与您的变体相同,但稍短。
答案 1 :(得分:16)
self.view.subviews.forEach({ $0.removeFromSuperview() })
Swift中的相同版本。
答案 2 :(得分:6)
夫特:
extension UIView {
func removeAllSubviews() {
for subview in subviews {
subview.removeFromSuperview()
}
}
}
答案 3 :(得分:1)
你可以这样使用
//adding an object to the view
view.addSubView(UIButton())
// you can remove any UIControls you have added with this code
view.subviews.forEach { (item) in
item.removeFromSuperview()
}
view是要从中删除所有内容的视图。你只是通过forEach
删除每个子视图答案 4 :(得分:0)
对于Swift 4+。您可以扩展UIView
。必要时调用它。
extension UIView {
func removeAllSubviews() {
subviews.forEach { $0.removeFromSuperview() }
}
}