setTitleTextAttributes在屏幕上查看后无法正常工作。 iOS 11

时间:2017-11-01 17:20:46

标签: ios uibarbuttonitem

我花了一整天的时间试图改变UIBarButtonItem的颜色,现在我认为这是一个iOS 11的bug,除非有人能告诉我它的设计。

我可以使用此代码

更改文本的颜色
[self.refreshButton setTitleTextAttributes:@{NSForegroundColorAttributeName: [UIColor orangeColor]} forState:UIControlStateNormal];

如果我将代码添加到viewWillAppear:animated函数中,它可以正常工作,但是如果将其添加到viewDidAppear:animated则不起作用。

它似乎适用于iOS 9模拟器,但不适用于iOS 11.

在iOS 11中,这方面有什么变化吗?

3 个答案:

答案 0 :(得分:1)

如果您只想更改UIBarButtonItem的标题颜色,则可以设置tintColor属性而不是setTitleTextAttributes:。如果您希望所有UIBarButtonItems具有相同的标题颜色,则可以设置工具/导航栏的tintColor

答案 1 :(得分:0)

我在iOS11上遇到了同样的问题,但需要按setTitleTextAttributes设置字体。不幸的是,这也不适用于外观。我找到的唯一解决方案是创建新的BarButtonItems作为旧版本的副本,然后将它们设置为navigationItem.rightBarButtonItems

供具有相同问题的其他用户参考。

答案 2 :(得分:0)

Stack Overflow answer可以解释为什么该方法不起作用。

不正确设置UIControlState()可能是问题所在。