Three20库 - TTPhotoViewController的子类有一个不透明的导航栏

时间:2009-10-31 08:20:55

标签: iphone three20

我正在使用Three20库中的TTPhotoViewController子类来显示来自Web位置的图像。图像加载正常,但导航栏和工具栏显示默认色调。我正在使用带有自定义色调的导航栏(在MainWindow.xib中设置)

我试过这些东西让它显示黑色半透明条纹,但这些似乎都不起作用。

  1. 在MainWindow.xib
  2. 中将导航栏样式设置为黑色半透明
  3. 在MainWindow.xib中将导航栏样式设置为黑色不透明
  4. 在子类的viewWillAppear中将导航栏样式显式设置为黑色半透明:
  5. 有人可以告诉我为什么会发生这种情况以及如何解决这个问题?感谢。

1 个答案:

答案 0 :(得分:15)

编辑:我是个白痴。您正在尝试设置样式,而不是颜色。以下是所有有效信息,但您几乎肯定需要的是navigationBarStyle属性defined by TTViewController。遗憾。


Three20内置了“样式表”机制,其目的是使您不必在应用程序中的所有UI对象上反复设置色彩,字体等。但是,如果您不知道它在那里,那么您最终会遇到这种情况。你需要做的是:

在您的应用程序中创建TTDefaultStyleSheet的子类,并至少覆盖此方法:

- (UIColor*)navigationBarTintColor {
  return RGBCOLOR(119, 140, 168);
}

您应用中的某个位置(可能是applicationDidFinishLaunching:),请致电:

[TTStyleSheet setGlobalStyleSheet:
  [[[YourStyleSheetClass alloc] init] autorelease]];

(您可能希望在TTDefaultStyleSheet.h中浏览,因为框架使用了大量其他样式,并且您可能还想覆盖。)