【问题标题】:setTitleTextAttributes not working after view on screen. iOS 11在屏幕上查看后 setTitleTextAttributes 不起作用。 iOS 11
【发布时间】:2018-08-30 11:44:00
【问题描述】:

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

我可以使用此代码更改文本的颜色

[self.refreshButton setTitleTextAttributes:@{NSForegroundColorAttributeName: [UIColor orangeColor]} forState:UIControlStateNormal];

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

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

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

【问题讨论】:

  • 我在 viewWillAppear:animated 中更改 UI 时也遇到了一些问题。我认为将您的代码放入dispatch_after 并稍加延迟即可解决问题;)
  • 我确定我试过了,但还是不行。我会再试一次。
  • 不,延迟 1 秒后仍然没有骰子。

标签: ios uibarbuttonitem


【解决方案1】:

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

【讨论】:

  • setTintColor: 工作正常,谢谢。我已经向 Apple 提交了关于 setTitleTextAttributes: 的错误报告
  • UINavigationBar.appearance().tintColor 成功了,谢谢。
  • @Darren 你能把你的雷达ID放在这里吗?
  • @justicepenny 35313390
【解决方案2】:

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

供遇到相同问题的其他用户参考。

【讨论】:

    【解决方案3】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-10-12
      • 1970-01-01
      • 2018-06-18
      • 1970-01-01
      • 2018-12-27
      • 2022-07-22
      • 1970-01-01
      相关资源
      最近更新 更多