重写了three20 TTDefaultStyleSheet样式不起作用

时间:2010-05-05 00:20:38

标签: iphone objective-c three20 subclassing

我最近在我的应用程序中集成了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];
}

它按预期工作。

我有什么东西可以忽略我的风格吗?

感谢,
范数

1 个答案:

答案 0 :(得分:0)

在你的头文件中,@ property是不必要的 - 删除它会解决你的问题吗?