如何使 UIBarButton 在禁用时不灰显?
How to make UIBarButton not greyed out when disabled?
我有一个 UIBarButton saveBarButton
可以将屏幕图像保存到相机胶卷。当用户按下 saveBarButton
时,图像被保存并且 UIBarButton saveBarButton
变为 UIImage doneIcon
1.2 秒,以向用户表明图像已被保存。当 saveBarButton
显示 doneIcon
我禁用 saveBarButton
。但是,当我这样做时 saveBarButton
变灰了。
我的问题是:如何阻止 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
}
其中一种方法是使用 customView
创建 UIBarButtonItem
并使用 userInteractionEnabled
代替 enabled
。
let saveBarButton = UIBarButtonItem(customView: saveButton)
saveBarButton.customView?.userInteractionEnabled = false
我有一个 UIBarButton saveBarButton
可以将屏幕图像保存到相机胶卷。当用户按下 saveBarButton
时,图像被保存并且 UIBarButton saveBarButton
变为 UIImage doneIcon
1.2 秒,以向用户表明图像已被保存。当 saveBarButton
显示 doneIcon
我禁用 saveBarButton
。但是,当我这样做时 saveBarButton
变灰了。
我的问题是:如何阻止 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
}
其中一种方法是使用 customView
创建 UIBarButtonItem
并使用 userInteractionEnabled
代替 enabled
。
let saveBarButton = UIBarButtonItem(customView: saveButton)
saveBarButton.customView?.userInteractionEnabled = false