我有一个使用 6.1 SDK 编译的 iOS 应用程序,其中包含一些 UIBarButtonItems,其中 TintColor 在 ViewWillAppear 中以编程方式设置。
UIBarButtonItem leftButton = new UIBarButtonItem(...);
leftButton.TintColor = UIColor.FromRGB(231, 231, 231);
导致了这个。
我已将我的 iPhone 升级到 7.0,但我仍然需要为 6.1 SDK 构建以实现向后设备兼容性(商业原因)。
当我使用 6.1 SDK 构建应用程序并在运行 iOS 7.0 的 iPhone 上运行它时,工具栏看起来像这样。
通读 iOS 7 UI 过渡指南后,我尝试设置 UIWindow 的 TintColor 以查看这是否有效果。它没。
有趣的是 - 在这个表单上,当我显示一个 ActionSheet 时,在 ActionSheet 被关闭后,取消和保存按钮的背景从“黑色”变为“白色”。我目前正在调查为什么会发生这种情况。
如果我不能在 iOS 7.0 下以编程方式更改 TintColor,我正在考虑为按钮创建自定义背景图像,就像这样。
并使用 SetBackgroundImage 覆盖现有背景。
提前致谢。
更新 - 09.24.13
poupou 的回答将我指向 WWDC 视频(链接),它在 8:37 为我提供了解决方案 - 我需要设置导航栏的 TintColor 而不是设置特定按钮的 TintColor。
NavigationBar.TintColor = UIColor.FromRGB(231, 231, 231);