更改 UIToolbar 中 UIBarButtonItem 上的 TintColor 会导致按钮消失并从左侧开始动画

发布于 2024-12-28 18:45:03 字数 648 浏览 1 评论 0原文

我正在使用 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 的方法。

I'm using Xcode 4.2 to develop an iOS 5 app.

In Storyboard I've got a view with a UIToolbar, and 3 items in it. The last item is a UIBarButtonItem. I want to change the tintColor of this UIBarButtonItem when a user taps it, until what it does is dismissed.

I've made the UIBarButtonItem an outlet in my controller, here's the code:

@property (weak, nonatomic) IBOutlet UIBarButtonItem *upArrowButton;
...
@synthesize upArrowButton = _upArrowButton;

...and I am changing the tintColor like so:

self.upArrowButton.tintColor = [UIColor greenColor];

However when the tintColor changes, the button disappears, and a new one (with the correct new tintColor) animates on screen from the left.

Any idea what mistake I've made?

UPDATE:

I've tracked down the source of the problem, it's because the method where tintColor was changed is called inside an animateWithDuration animations block.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

独自唱情﹋歌 2025-01-04 18:45:03

这种奇怪行为的根源是因为我正在调用从 animateWithDuration 动画块内更改tintColor 的方法。从而导致tintColor 的变化被“动画化”。

The source of this peculiar behaviour was because I was calling the method that changed the tintColor from within an animateWithDuration animations block. Thus causing the change in tintColor to be 'animated'.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文