自定义单元格没有重新绘制三个20

时间:2011-09-23 09:37:38

标签: objective-c ios three20 uitableview

我有一个尴尬的问题,呼叫[self invalidateModel];不会重绘我的自定义单元格。

我有一个TTTableViewController,其中包含一个操作表,允许在按下时按顺序显示表格。数据被正确重绘,但不重绘单元格。而是重复使用。

更好地说明:
在我的CustomTableItemCell类的- (void)layoutSubviews {中,我有这个:

if (bookmarked) {
        UIImage *bookmark = [UIImage imageNamed: @"bookmarked@2x.png"];
        TTImageView *bookmarkView = [[TTImageView alloc] init];
        bookmarkView.defaultImage = bookmark;
        bookmarkView.frame = CGRectMake(297, 0, 16, 27);
        [self.contentView addSubview:bookmarkView];
        TT_RELEASE_SAFELY(bookmarkView);
}

基本上,如果我收到书签项目,我想在单元格的右侧显示一个功能区。此功能区正确显示 当我使用动作表方法重新排序我的单元格并调用invalidateModel时,没有任何ribon的第一个单元格被放置在以前是带状项目但没有重新绘制单元格的位置,从而为没有功能区的项目提供ribon

代码来源:
这是我的TTTableViewController的createDatasource函数:

- (void)createModel {
    self.dataSource = [ServiceRequestDetailedDataSource viewDataSource:self.typeOfAction andOrderBy:orderBy];
    // If dataSource nil, show an empty Message
    if (self.dataSource == nil) {
        [self showEmpty:YES];
    }
}

这是我的TTTableViewController的动作表操作,它改变了orderBy并调用了invalidate model:

-(void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex {
    if (buttonIndex == 0) {
        self.orderBy = @"portfolio";
    [self invalidateModel];
}

任何提示都会很棒,我真的被困在这里:'(

2 个答案:

答案 0 :(得分:0)

也许[self reload]会帮助你更新单元格视图。在模型失效后调用它

答案 1 :(得分:0)

找到它,只需使用reuseidentifier。我的坏。