Making uibarbuttonitems fade

2019-06-15 19:32发布

问题:

I have a navigation bar that is set up and controlled completely with code. So it does not show up in IB. I have a button appear by "self.navigationitem.rightbarbutton = myButton;" An I make it go away by setting it equal to NIL. What I am wondering is how could I make it fade in and out?

回答1:

I found what worked best for me [self.navigationItem setRightBarButtonItem:myButton animated:YES]; And then [self.navigationItem setRightBarButtonItem:nil animated:YES]; To make it fade out.



回答2:

Swift version

fade in: navigationItem.setRightBarButtonItem(myButton, animated: true)

fade out: navigationItem.setRightBarButtonItem(nil, animated: true)



回答3:

Unfortunately there is no built in way to animate this for bar button items in a navigation bar. UIBarButtonItem is not a view or a control so it does not have animatable properties like alpha.

For bar button items in a UIToolbar, there is a way to animate. See this answer for details:

Is it possible to use Core Animation to fade out a UIBarButtonItem?