ios – UIBarButtonItem色彩不起作用

ios – UIBarButtonItem色彩不起作用,第1张

概述我最近注意到tintColor属性的行为在最近的一次iOS 10更新中发生了显着变化. 我有一个以前完美运行的代码,现在根本不工作. 在我的一个应用程序中,我有一组UIBarButtonItems,它们被添加到视图控制器的toolbarItems数组中.它们显示得很好. 但是,在某些时候,我想要更改某些项目的色调颜色以响应用户 *** 作.代码很简单: flagButton.tintColor = [UI 我最近注意到tintcolor属性的行为在最近的一次iOS 10更新中发生了显着变化.

我有一个以前完美运行的代码,现在根本不工作.

在我的一个应用程序中,我有一组UIbarbuttonItems,它们被添加到视图控制器的toolbaritems数组中.它们显示得很好.

但是,在某些时候,我想要更改某些项目的色调颜色以响应用户 *** 作.代码很简单:

flagbutton.tintcolor = [UIcolor redcolor];

这个代码以前用过,但现在它不起作用!我已经验证了存在对UIbarbuttonItem的引用,并且执行了这行代码.但是,色调颜色没有改变.

在tintcolor属性的描述中,它说:

To refresh subvIEw rendering when this property changes,overrIDe the tintcolorDIDChange() method.

我尝试添加tintcolorDIDChange方法,但没有调用它.我在这个阶段的假设是,一旦tintcolor被更改,我的按钮就不会自动刷新.

有人可以帮忙找到手动刷新它的方法吗?该按钮是带有图像的标准UIbarbuttonItem.

更新1

实际上我注意到,如果我更改工具栏的tintcolor而不是单个项目代码正在工作.似乎由于某种原因,在单个项目上设置色调颜色不再有效.有谁知道为什么会这样?

更新2

由于matt的提示,我能够找到问题的根源.它是由启动应用程序时执行的代码引起的:

[[UItableVIEwCell appearance] setTintcolor:[Colourtheme sharedtheme].navBackground];

现在,我完全不知道为什么这一行导致了UIbarbuttonItem色调的问题…这可能是因为它在UIAppearance中引入了一些含糊之处.无论如何,由于我自己不再需要这条线,我可以轻松地将其移除.我仍然会打开我的问题,因为我认为这种行为非常奇怪,所以在某种程度上,这个问题仍然没有答案.

就像一个额外的信息 – 遇到这些问题的视图控制器包含一个表视图.

解决方法 我遇到了同样的问题,最后通过以下步骤解决了这个问题:

1)创建条形按钮项目的插座.我被称为“closebutton”
2)编写以下代码:

overrIDe func vIEwWillAppear(animated: Bool) {  let barbuttonAttributes = [NSAttributedStringKey.foregroundcolor: UIcolor.white]  closebutton.setTitleTextAttributes(barbuttonAttributes,for: .normal)}

请务必将代码放在vIEwWillAppear中,因为这会覆盖UIAppearance的默认设置.

总结

以上是内存溢出为你收集整理的ios – UIBarButtonItem色彩不起作用全部内容,希望文章能够帮你解决ios – UIBarButtonItem色彩不起作用所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1067704.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-26
下一篇 2022-05-26

发表评论

登录后才能评论

评论列表(0条)

保存