2014-09-17 5 views
2

Я пытаюсь скрыть UIButton в subView при запуске функции. У меня есть несколько представлений с этой иерархией:Swift: Hide button in subview

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) 

Я хочу, чтобы скрыть takePhotoButton когда следующие функи обжигают, как я мог сделать это?

 func takePhoto(takePhotoButton: UIButton!) { 
    takePhotoButton.hidden = true 
    } 

ответ

5

Вы должны сделать UIButton свойством класса, если хотите сохранить ссылку на него. Затем вы можете получить к нему доступ, используя self.takePhotoButton.

1

Сделать контрольную переменную кнопки. Задайте его скрытое свойство true.

self.yourReferenceVariable.hidden = true 
+0

hi, ca не обращаться к нему, если кнопка не является селектором. Если да, мое приложение падает с этой ошибкой: непризнанный селектор отправляется в экземпляр – jmcastel

2

Использование takePhoto: в качестве селектора при добавлении цели, и кнопка будет передана при вызове метода.

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) 

Затем кнопка шкура в методе,

func takePhoto(takePhotoButton: UIButton!) { 
    takePhotoButton.hidden = true 
} 
+0

Хорошо, когда я добавляю кнопку в качестве селектора, я могу получить к ней доступ в методе takePhoto, но когда я нажимаю кнопку в своем приложении, у меня есть новая ошибка: непризнанная селектор отправлен в пример – jmcastel

+0

Да, вы также должны добавить метод, как я добавил выше, takePhoto (takePhotoButton: UIButton!) – Sandeep

+0

Я сделал это, посмотрю на отредактированный пост witch, теперь мой фактический код. – jmcastel

2

в Swift 3.0, Вы должны использовать isHidden вместо hidden

subview.isHidden = true 

особенно в этом случае,

self.subview.isHidden = true