Estoy intentando ocultar un button UIB en una subView cuando se activa una function. Tengo varias vistas con esa jerarquía:
var takePhotoButton : UIButton = UIButton.buttonWithType(UIButtonType.System) as UIButton takePhotoButton.addTarget(self, action:"takePhoto", forControlEvents:UIControlEvents.TouchUpInside) var savePhotoButton : UIButton = UIButton.buttonWithType(UIButtonType.System) as UIButton let view2:UIView = UIView(frame: CGRectMake(0, 0, 320, 568)) self.view.addSubview(photoMask) photoMask.addSubview(view2) view2.addSubview(takePhotoButton)
Quiero ocultar el takePhotoButton cuando se activa la siguiente function, ¿cómo podría hacer eso?
func takePhoto(takePhotoButton: UIButton!) { takePhotoButton.hidden = true }
Tienes que convertir el UIButton en una propiedad de la class si quieres mantener una reference a ella. Luego puede acceder a él usando self.takePhotoButton
.
Use takePhoto: como selector mientras agrega objective y el button se pasará cuando se invoca el método.
var takePhotoButton : UIButton = UIButton.buttonWithType(UIButtonType.System) as UIButton takePhotoButton.addTarget(self, action:"takePhoto:", forControlEvents:UIControlEvents.TouchUpInside) var savePhotoButton : UIButton = UIButton.buttonWithType(UIButtonType.System) as UIButton let view2:UIView = UIView(frame: CGRectMake(0, 0, 320, 568)) self.view.addSubview(photoMask) photoMask.addSubview(view2) view2.addSubview(takePhotoButton)
Luego, ocultar el button en el método,
func takePhoto(takePhotoButton: UIButton!) { takePhotoButton.hidden = true }
en Swift 3.0, debe usar isHidden
lugar de hidden
subview.isHidden = true
particularmente en este caso,
self.subview.isHidden = true
Haz una variable de reference del button. Establezca su propiedad oculta en verdadero por esto.
self.yourReferenceVariable.hidden = true