2016-01-04 4 views
2

У меня есть UIBarButton saveBarButton, чтобы сохранить изображение экрана в рулоне камеры. Когда пользователь нажимает saveBarButton, изображение сохраняется, а UIBarButton saveBarButton изменяется на UIImage doneIcon на 1,2 секунды, чтобы указать пользователю, что изображение сохранено. Когда saveBarButton отображает doneIcon I, отключите saveBarButton. Однако, когда я это делаю, saveBarButton неактивен.Как сделать UIBarButton недоступным при отключении?

Мой вопрос: как мне остановить UIBarButton от высева при отключении?

Мой код:

//create UIBarButton saveBarButton 
override func viewDidLoad() {  
    let saveBarButton = UIBarButtonItem(image: UIImage(named: "saveIcon"), style: .Plain, target: self, action: "save:") 
    saveBarButton.tintColor = colorGreyDark 
} 

//save function called when press saveBarButton 
func save(sender: UIBarButtonItem) { 
    //save image 
    deselectShape() 
    let window: UIWindow! = UIApplication.sharedApplication().keyWindow 
    let windowImage = capture(window) 
    UIImageWriteToSavedPhotosAlbum(windowImage 
     , nil, nil, nil) 

    //Change saveBarButton to indicate to user that image was saved 
    sender.image = UIImage(named: "doneIcon") 
    sender.enabled = false //disable saveBarButton 
    self.performSelector("canSaveAgain:", withObject: sender, afterDelay: 1.2) 
} 

//Change saveBarButton to original icon to indicate to user that can save another image 
func canSaveAgain(sender: UIBarButtonItem){ 
    sender.image = UIImage(named: "saveIcon") 
    sender.enabled = true //enable saveBarButton 
} 

To see what I'm talking about.

+0

Вы пробовали 'sender.tintColor = UIColor (красный: 51/255, зеленый: 51/255, синий: 51/255, альфа: 1,0)', где вы установите кнопку Enabled = ложь? –

ответ

3

Одним из способов является создание UIBarButtonItem с customView и использовать userInteractionEnabled вместо enabled.

let saveBarButton = UIBarButtonItem(customView: saveButton) 
saveBarButton.customView?.userInteractionEnabled = false 
+0

интересная идея ... Я действительно изменил свой код сейчас, поэтому мне не нужно это делать вообще, но спасибо за вашу помощь! Я буду иметь это в виду, когда мне это нужно – 14wml

Смежные вопросы