Swift UIToolBar按钮闪烁

Swift UIToolBar按钮闪烁,swift,uibarbuttonitem,uitoolbar,Swift,Uibarbuttonitem,Uitoolbar,我有一个带有几个UIBarButton的工具栏,它嵌入到一些视图中。可根据需要启用/禁用按钮。问题是,每次切换到新视图时,禁用的按钮都会亮起几分之一秒,然后再恢复其禁用状态。我已尝试从情节提要中初始化处于禁用状态的按钮,并从工具栏视图控制器中的viewDidLoad移动代码。不走运。我已经在这一点上停留了几天…任何建议都将不胜感激 出于测试目的,我一直在ToolBarViewController.swift中使用以下代码,其中notesButton是UIBarButtonItem类型的IBOut

我有一个带有几个UIBarButton的工具栏,它嵌入到一些视图中。可根据需要启用/禁用按钮。问题是,每次切换到新视图时,禁用的按钮都会亮起几分之一秒,然后再恢复其禁用状态。我已尝试从情节提要中初始化处于禁用状态的按钮,并从工具栏视图控制器中的
viewDidLoad
移动代码。不走运。我已经在这一点上停留了几天…任何建议都将不胜感激

出于测试目的,我一直在
ToolBarViewController.swift
中使用以下代码,其中notesButton是
UIBarButtonItem类型的
IBOutlet

override func viewDidLoad() {
    super.viewDidLoad()
    notesButton.isEnabled = false
}
如您所见,当我通过按下按钮更改视图时,设置按钮将在恢复其禁用外观之前短暂变为完全不透明度:


将图像设置为原始渲染模式,使其始终保持原始状态,并且不会根据按钮状态进行更改

notesButton.image = UIImage(named: "YourImageName")?.withRenderingMode(UIImageRenderingMode.alwaysOriginal)

PS:我还没有测试过,你可以试着让我知道它是否有效,或者可以检查UIToolBar颜色或按钮颜色是否为白色,这样它将始终保持白色。

你能在禁用按钮的地方发布代码吗?如果你谈论的是颜色,那么“按钮亮起几秒钟”是什么意思。我看不出你在哪里换颜色。据我所知,设置isEnable=false/true只会影响用户操作,而不会影响外观。你想隐藏/显示按钮,然后使用isHiden=true/false,你也可以上传gif图像,这样我们就可以更清楚地了解这个问题。我添加了一张照片-正如你所看到的,简单地禁用按钮会使其不透明度降低约一半。notesButton.image=UIImage(名为:“YourImageName”)?。使用RenderingMode(UIImageRenderingMode.alwaysOriginal)因此,这确实会使按钮保持白色-这确实会处理闪烁,但我仍然希望禁用的按钮具有暗淡的外观。我会继续尝试。也许在渲染模式中会有一些帮助。谢谢。您可以使用两个图像,或者如果您可以显示闪烁是如何发生的以及准确的时间,无论如何,这会有更好的帮助您仍然可以保留渲染模式模板,但可以在视图中设置图像,使其看起来不会闪烁,也可以在慢速动画中进行设置