如何把uiview中所有的subview全部清除掉

2025-05-02 09:07:15
推荐回答(2个)
回答(1):

这code明显就是从写在superview内的吧。
没有subview的话array应该是空的。
既然是空的,又怎么可能执行for块内的东西呢?
既然不会执行for块内的东西,应该就不会错了吧 。
- (void)removeAllSubviews {
while (self.subviews.count) {
UIView* child = self.subviews.lastObject;
[child removeFromSuperview];
}
}

回答(2):

就算不报错你这么做也是不对的,因为视图是被添加到window上的,数组只是一个引用,关键是对子视图调用removeFromSuperview方法:
self.view.subviews.map{ $0.removeFromSuperview()}