Eliminar subvistas de ScrollView Swift

Utilizo un for-loop para crear tags y botones dentro de mi scrollView. ¿Es posible eliminar todos los objects dentro de mi scrollView? (Me gustaría actualizarlo con nuevo contenido)

for peop in personArray{ scrollView.clearContent ?????? // Name label var label: UILabel = UILabel() label.frame = CGRectMake(8, CGFloat(nameHeight), 183, 21) label.backgroundColor = UIColor.whiteColor() label.textColor = UIColor(networking: 90/255.0, green: 187/255.0, blue: 206/255.0, alpha: 1.0) label.textAlignment = NSTextAlignment.Left label.font = UIFont (name: "HelveticaNeue-Light", size: 14) label.text = " \(peop.getName()) - \(sex)" self.scrollView.addSubview(label) //Delete button var button = UIButton.buttonWithType(UIButtonType.System) as UIButton button.tag = playerId button.frame = CGRectMake(199, CGFloat(nameHeight), 37, 21) button.backgroundColor = colorWheel.colorsArray[7] button.setTitle("Slet", forState: UIControlState.Normal) button.addTarget(self, action: "delAction:", forControlEvents: UIControlEvents.TouchUpInside) button.setTitleColor(UIColor.whiteColor(), forState: UIControlState.Normal) self.scrollView.addSubview(button) button.titleLabel!.font = UIFont(name: "HelveticaNeue-Light", size: 14) scrollHeight = scrollHeight + 29 nameHeight = nameHeight + 29 playerId++ } scrollView.contentSize = CGSize(width: 20.0, height: CGFloat(nameHeight)) } func delAction(sender: UIButton!){ personArray.removeAtIndex(sender.tag) updatePeople() } 

¿Has probado esto?

 let subViews = self.scrollView.subviews for subview in subViews{ subview.removeFromSuperview() } 

Una solución de línea, use

 scrollView.subviews.forEach({ $0.removeFromSuperview() }) 

ACTUALIZADO

Para eliminar solo un tipo específico de vista, diga usar el UIButton

 scrollView.subviews.forEach ({ ($0 as? UIButton)?.removeFromSuperview() }) 

Puede hacer esto con enfoque de bloque,

 let views: NSArray = scroller.subviews // 3 - remove all subviews views.enumerateObjectsUsingBlock { (object: AnyObject!, idx: Int, stop: UnsafeMutablePointer<ObjCBool>) -> Void in object.removeFromSuperview() } 

La eliminación de un set de objects de diferentes classs se puede hacer con tags. Establezca la label al crear el set de objects.

 label.tag = 99 

Ahora, al eliminar los objects, usa:

 func removeLabels() { let subViews = self.view.subviews for subview in subViews { if subview.tag == 99 { subview.removeFromSuperview() } } }