1

我有一个 iOS 6 应用程序,它使用以下命令将所有导航栏按钮的色调设置为绿色:

[[UIBarButtonItem appearance] setTintColor:[UIColor colorWithRed:(100.0f/255.0f) green:(190.0f/255.0f) blue:(100.0f/255.0f) alpha:1.0f]];

这是在应用程序启动时完成的。这在运行 iOS 6 的手机上运行良好,但在运行 iOS 7 的手机上,色调有时存在,有时不存在。尤其是在显示 AlertView 时会发生这种情况。这会消除显示正确绿色色调的任何按钮的色调颜色,并将按钮恢复为标准的 iOS 6 蓝色色调。

为了确认这不是我在我的大型项目中所做的事情,我创建了一个基本模板 Master-detail xcode 项目来确认并只添加了上面的行和一个 alertview 弹出窗口,这也发生在那里。

我想知道 1.) 其他人是否正在经历这种情况 2.) 如果是这样,您是否找到了解决方法和 3.) 任何人都知道 Apple 是否已确认这是一个错误。

目前,我们不打算将此应用程序转换为 iOS 7 的外观,因此这不是一个选项。谢谢。

4

1 回答 1

2

来自苹果官方文档:

在 iOS 6 中,tintColor 为导航栏、标签栏、工具栏、搜索栏和范围栏的背景着色。要在 iOS 7 中为条形背景着色,请改用 barTintColor 属性。

您应该参考完整的 UI 转换指南,了解哪些 UI 元素在 iOS 7 中的行为方式有所不同。如果您想同时支持这两种方式,您可以检查 iOS 版本并为每个版本添加不同的代码:

if (floor(NSFoundationVersionNumber) <= NSFoundationVersionNumber_iOS_6_1) {
   // Load resources for iOS 6.1 or earlier
} else {
   // Load resources for iOS 7 or later
}
于 2013-11-08T19:28:31.993 回答