从UIScrollView中删除所有子视图?
如何从UIScrollview中删除所有的子视图?
让scrollView成为UIScrollView一个实例。 
 在Objective-C中,这非常简单。 只要调用makeObjectsPerformSelector:就像这样: 
Objective-C的:
 [scrollView.subviews makeObjectsPerformSelector:@selector(removeFromSuperview)]; 
在Swift中,你不能获得运行时访问,所以你必须亲自处理迭代。
迅速:
一个简洁的版本, 从这里 :
 scrollview.subviews.map { $0.removeFromSuperview() } 
 一个更具描述性的方法来做到这一点(从这里 )假设scrollview.subviews : 
 let subviews = self.scrollView.subviews for subview in subviews{ subview.removeFromSuperview() } 
我想你只需要小心,不要删除滚动指示条。
Adam Ko给出的代码短小而优雅,但可能会删除水平和垂直滚动指标。
我通常这样做
 for (UIView *v in scrollView.subviews) { if (![v isKindOfClass:[UIImageView class]]) { [v removeFromSuperview]; } } 
使用你没有UIImageView的手动添加到滚动。
除了Ricardo de Cillo之外,在我的例子中,我有一个表格视图,在子视图中有图像视图,我想删除它们。
 for (UIView *v in self.tableview.subviews) { if ([v isKindOfClass:[UIImageView class]]) { [v removeFromSuperview]; } } 
 删除! 在if命令中,并将scrollview更改为self.tableview删除所有图像,但保持table view不变。 
如果要在scrollview.subviews中删除uiimageviews,并且还想保留垂直和水平指示器。 您可以设置一个特殊的“标签”来标识视图,并排除标签默认为0的垂直和水平指示器。
从以前的答案(Swift 3.0 ready)补充Swift简洁版本:
 _ = scrollView.subviews.filter { $0 is UIImageView }.map { $0.removeFromSuperview() }