在 UIToolbar 中的 UIBarButtonItem 上更改 tintColor 会导致按钮消失并从左侧动画化
Posted
技术标签:
【中文标题】在 UIToolbar 中的 UIBarButtonItem 上更改 tintColor 会导致按钮消失并从左侧动画化【英文标题】:Changing tintColor on UIBarButtonItem in UIToolbar causes button to disappear and animate in from left 【发布时间】:2012-01-23 19:13:45 【问题描述】:我正在使用 Xcode 4.2 开发 ios 5 应用程序。
在 Storyboard 中,我有一个带有 UIToolbar 的视图,其中包含 3 个项目。最后一项是 UIBarButtonItem。我想在用户点击它时更改此 UIBarButtonItem 的 tintColor,直到它的作用被解除。
我已将 UIBarButtonItem 设置为控制器中的插座,代码如下:
@property (weak, nonatomic) IBOutlet UIBarButtonItem *upArrowButton;
...
@synthesize upArrowButton = _upArrowButton;
...我正在像这样更改 tintColor:
self.upArrowButton.tintColor = [UIColor greenColor];
但是,当 tintColor 发生变化时,按钮会消失,并且一个新按钮(具有正确的新 tintColor)会从左侧开始在屏幕上显示动画效果。
知道我犯了什么错误吗?
更新:
我已经找到了问题的根源,这是因为在 animateWithDuration 动画块中调用了更改 tintColor 的方法。
【问题讨论】:
您应该发布您的解决方案作为答案,以便可以关闭此问题。 【参考方案1】:这种特殊行为的根源是因为我在 animateWithDuration 动画块中调用了更改 tintColor 的方法。从而导致 tintColor 的变化被“动画化”。
【讨论】:
以上是关于在 UIToolbar 中的 UIBarButtonItem 上更改 tintColor 会导致按钮消失并从左侧动画化的主要内容,如果未能解决你的问题,请参考以下文章
如何使 UINavigationController 中的 UIToolbar 更高?
UIToolbar 中的 UISearchBar 不会显示取消按钮