TTStyleSheet在重新加载时丢失样式

时间:2012-05-29 09:37:07

标签: cocoa-touch three20

我有一个TTStyledSheet,可以在加载时正常工作。但是当我重新加载视图时,样式就丢失了。

  1. 我有一个UITableViewController
  2. tableview中的每个单元格都有一个TTStyledTextLabel
  3. 我有tableview的重装机制
  4. 当视图加载时,样式是完美的,正如我所期望的那样。但是,当我重新加载表格时,样式完全丢失了

    在我的feedView.m文件中,我有像这样的样式表

    @interface feedViewStyleSheet : TTDefaultStyleSheet
    @end
    
    @implementation feedViewStyleSheet
    
    - (TTStyle*)smallGrayText {
        TTTextStyle *style=[[TTTextStyle alloc] init];
        [style setFont:[UIFont fontWithName:@"HelveticaNeue" size:9]];
        [style setColor:[[GlobalFunctions sharedGlobalFunctions] UIColorFromRGB:85 :85 :85]];
        [style setNext:nil];
        return [style autorelease];
    }
    - (TTStyle*)smallBlueText {
        TTTextStyle *style=[[TTTextStyle alloc] init];
        [style setFont:[UIFont fontWithName:@"HelveticaNeue-Bold" size:14]];
        [style setColor:[[GlobalFunctions sharedGlobalFunctions] UIColorFromRGB:144 :5 :5]];
        [style setNext:nil];
        return [style autorelease];
    }
    
    
    - (TTStyle*)smallText {
        return [TTTextStyle styleWithFont:[UIFont fontWithName:@"HelveticaNeue" size:12] next:nil];
    }
    
    
    @end
    #pragma mark {End TTStyles}
    

    在视图的初始化中我有这个

    -(id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil{
        self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
        if (self) {
            //  TTStyleSheet styles
            [TTStyleSheet setGlobalStyleSheet:[[feedViewStyleSheet alloc] init] ];          
    
        }
        return self;    
    }
    

    我试着调试;当我为每个单元格打印[TTStyleSheet globalStyleSheet]时为每个单元格。当应用程序启动时,以及何时启动它。调试输出如下

    2012-05-29 17:26:17:961 MFace[41092:12803] Cell 0 Style: <feedViewStyleSheet: 0x7f7d240>
    2012-05-29 17:26:17:978 MFace[41092:12803] Cell 1 Style: <feedViewStyleSheet: 0x7f7d240>
    

    但是当我重新加载时(即风格丢失时),输出为

    2012-05-29 17:26:22:228 MFace[41092:12803] Cell 0 Style: <TTDefaultStyleSheet: 0x7f12030>
    2012-05-29 17:26:22:228 MFace[41092:12803] Cell 1 Style: <TTDefaultStyleSheet: 0x7f12030>
    

    看起来好像样式表在重新加载时不可用。我甚至尝试在init期间删除“autorelease”。但它仍然是相同的。

    我不确定为什么会这样。有什么建议吗?

    是的,我的应用程序中没有TTNavigator,只是尝试使用TTStyleSheet和styledText以及其他一些组件。

    由于

1 个答案:

答案 0 :(得分:0)

我不知道如何解决这个问题;但我相信TTStyles在重新加载时会被释放或不存在。所以每次我重新加载表时我都会重新声明它们。不确定这是否是一个好方法。但这对我有用。