7

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

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

  1. 在 MainWindow.xib 中将导航栏样式设置为黑色半透明
  2. 在 MainWindow.xib 中将导航栏样式设置为黑色不透明
  3. 在子类的 viewWillAppear 中将导航栏样式显式设置为黑色半透明:

有人可以告诉我为什么会发生这种情况以及我该如何解决这个问题?谢谢。

4

1 回答 1

15

编辑:我是个白痴。您正在尝试设置样式,而不是颜色。以下是所有有效信息,但您几乎可以肯定想要的是由定义navigationBarStyle的属性。对不起。TTViewController


Three20 内置了一个“样式表”机制,其预期目的是让您不必在应用程序中的所有 UI 对象上一遍又一遍地设置色调颜色、字体等。但是,如果您不知道它的存在,那么您最终会陷入这种情况。你需要做的是:

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

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

在您的应用程序中的某个地方(可能applicationDidFinishLaunching:),调用:

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

(You might want to browse around in TTDefaultStyleSheet.h, because there are a whole pile of other styles defined there that are used by the framework, and that you might also want to override.)

于 2009-11-02T16:09:41.090 回答