最近、アプリに three20 を統合して、TTWebController のデフォルトのツールバーの色をオーバーライドしようとしています。
TTWebController.m:118 で、これがツールバーの tintColor を設定していることがわかります。
_toolbar.tintColor = TTSTYLEVAR(toolbarTintColor);
そこで、TTDefaultStyleSheet をサブクラス化し、toolbarTintColor をオーバーライドする独自のスタイルシートを作成しました。
FooStyleSheet.h:
#import <Three20Style/Three20Style.h>
#import <Three20Style/TTStyleSheet.h>
#import <Three20Style/TTDefaultStyleSheet.h>
@interface FooStyleSheet : TTDefaultStyleSheet
@property (nonatomic, readonly) UIColor* toolbarTintColor;
@end
FooStyleSheet.m:
#import "FooStyleSheet.h"
@implementation RaptrStyleSheet
- (UIColor*)toolbarTintColor {
return RGBCOLOR(0, 0, 0); // should override TTDefaultStyleSheet
}
@end
そして私のアプリケーションで:didFinishLaunchingWithOptions:私はデフォルトのスタイルシートを設定しました
[TTStyleSheet setGlobalStyleSheet:[[[FooStyleSheet alloc] init] autorelease]];
しかし、TTWebController を表示すると、tintColor が継承されません。TTDefaultStyleSheet.m を直接編集すると:
- (UIColor*)toolbarTintColor {
return [UIColor blackColor];
}
期待どおりに動作します。
自分のスタイルを取り入れるのを妨げている見落としがあるものはありますか?
ありがとう、-
ノルム