在 IOS 5 中不显示颜色和数据

Posted

技术标签:

【中文标题】在 IOS 5 中不显示颜色和数据【英文标题】:Not displaying color and data in IOS 5 【发布时间】:2011-12-20 10:55:53 【问题描述】:

我在 Xcode 4 中针对 ios 4.3 实现了自定义导航栏和工具栏,现在正在更新针对 iOS 5 的 xcode 4.2。在 iOS 5 中,自定义不起作用,但每当我使用 iOS 4.3 模拟器时,它都可以正常工作。

提前致谢

【问题讨论】:

对于您的问题,唯一可以给出的答案是:“出了点问题”。您没有提供足够的信息 - 您的“自定义导航栏和工具栏”在做什么?哪些“定制的东西”不起作用,它们是如何不起作用的?您是否尝试过调试设置断点并单步执行您的代码? Navigation Bar customization in ios4 doesnt work in ios5 的可能重复项 【参考方案1】:

您是否使用drawRect类别方法自定义导航栏?

如果是这样我也有同样的问题,在IOS 5中drawRect方法没有被调用,IOS5现在已经内置了自定义导航栏的功能。

IOS5有一个新的外观属性可以用来自定义它,所以我做的是检查外观属性是否存在,如果存在则需要使用新的外观方法。

所以我仍然有在 IOS 版本

我的 viewDidLoad 方法如下所示,用于设置导航栏的背景:

if ([self.navigationController.navigationBar respondsToSelector:@selector(appearance)])
    [self.navigationController.navigationBar setBackgroundImage:[UIImage imageNamed:@"HeaderBar.png"] forBarMetrics:UIBarMetricsDefault];

您还可以使用以下代码为您的 appDelegate 中的所有导航栏设置 Appearance 对象:

if ([UINavigationBar respondsToSelector:@selector(appearance)])
    [[UINavigationBar appearance] setBackgroundImage:[UIImage imageNamed:@"HeaderBar.png"] forBarMetrics:UIBarMetricsDefault];

上面的代码是设置 UINavigationBar 类的外观,而不是导航栏的单个实例。这意味着 IOS 会将外观应用到所有导航栏。

【讨论】:

以上是关于在 IOS 5 中不显示颜色和数据的主要内容,如果未能解决你的问题,请参考以下文章

UIPickerView 在 iOS 7 中不显示数据

ScrollView 中的 UITextField 在 iOS 中不显示键盘

标签在 iOS 6 中显示文本,但在 iOS 7 中不显示

Whatsapp 缩略图预览在 IOS 和 OS 中显示,但在 Android 中不显示

UIToolbar 在 ios 5.0 和 ios 6.0 模拟器上显示不同的颜色

uitableview 中的 Uilabel 在调试模拟器颜色混合层中不显示不透明且不透明