0

我有一些代码来自定义 TabBar。我使用外观框架来做到这一点。该应用程序是iOS 5+,因此据我了解应该可以使用。我的代码如下所示:

NSDictionary *textAttributesNormal = @{
  UITextAttributeTextColor: [UIColor colorWithRed:0.04f green:0.25f blue:0.56f alpha:1.00f],
  UITextAttributeTextShadowOffset: [NSValue valueWithUIOffset:UIOffsetMake(0, 0)]
};

NSDictionary *textAttributesSelected = @{
  UITextAttributeTextColor: [UIColor colorWithWhite:1.0 alpha:1.0]
};


[[UITabBar appearance] setTintColor:[UIColor colorWithRed:0.53f green:0.76f blue:0.91f alpha:1.00f]];
[[UITabBarItem appearance] setTitleTextAttributes:textAttributesNormal forState:UIControlStateNormal];
[[UITabBarItem appearance] setTitleTextAttributes:textAttributesSelected forState:UIControlStateSelected];

我在委托的 applicationDidFinishLaunching 方法中执行此操作。此代码在 iOS6 上完美运行并按预期运行。但在 iOS 5 上,它什么也不做。它既不会引发任何警告或错误。

模拟器和实际设备上的行为相同。我可以在界面生成器中设置色调颜色,然后它将在 iOS5 上运行。但是我没有找到通过 IF 设置标签栏项目的文本属性的方法。

我感谢任何帮助或提示!:-)

最好的祝愿,托马斯

4

1 回答 1

0

好吧,外观代码并不是真正的问题。如前所述,我在

- (void)applicationDidFinishLaunching:(UIApplication *)application

该应用程序有点旧,Apple 文档指出,在 iOS3+ 上应该使用

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

我改变了它,现在它按预期工作。

于 2013-01-16T07:03:43.173 回答