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

los*_*sit 7 iphone three20

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

我试过这些东西让它显示黑色半透明条,但这些似乎都没有效果.

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

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

Six*_*tto 15

编辑:我是个白痴.你试图设置风格,而不是颜色.以下是所有有效信息,但您几乎肯定想要的是由... 定义navigationBarStyle属性.抱歉.TTViewController


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

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

- (UIColor*)navigationBarTintColor {
  return RGBCOLOR(119, 140, 168);
}
Run Code Online (Sandbox Code Playgroud)

在您的应用中的某个地方(可能applicationDidFinishLaunching:),请致电:

[TTStyleSheet setGlobalStyleSheet:
  [[[YourStyleSheetClass alloc] init] autorelease]];
Run Code Online (Sandbox Code Playgroud)

(您可能希望浏览TTDefaultStyleSheet.h,因为框架使用了一大堆其他样式,您可能还想覆盖它们.)