在 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

UIToolbar 中的 UISearchBar 不会显示取消按钮

在拆分视图中的 UIToolbar 上将文本注释完全居中

UIScrollView 中的 UIToolbar 修复了 UIViewController 作为子视图滚动问题

iOS7中的UIToolbar颜色不正确