将 TTTableView 中的自定义单元实现为 TTViewController

发布于 2024-12-07 04:50:57 字数 1349 浏览 0 评论 0原文

我有 TTViewController 在里面包含一个 TTTableView 并初始化 TTTableView 如下:

- (void)loadView{
    appTableView = [[TTTableView alloc] initWithFrame:CGRectMake(10, 20, self.view.width - 20, (self.view.height - 44 - 49)/2 - 40)];
        appTableView.backgroundColor = [UIColor clearColor];

        appTableView.delegate = self;
        appTableView.separatorStyle = UITableViewCellSeparatorStyleNone;
        [self.view addSubview:appTableView];
}

并且

- (void)requestDidFinishLoad:(TTURLRequest*)request {
   appTableView.dataSource = [TTListDataSource dataSourceWithObjects:
                           [CustomTTTableSubtitleItem itemWithTitle:result.resourceName text:textCombine ],nil];

}

我已经编码了:

- (Class)tableView:(UITableView*)tableView cellClassForObject:(id) object { 

    if ([object isKindOfClass:[CustomTTTableSubtitleItem class]]) { 
        NSLog(@"here");
        return [CustomTTTableSubtitleItemCell class];       
    } 
    else { 
        return [self tableView:tableView cellClassForObject:object]; 
    }
}

当然我添加了协议

@interface TestController : TTViewController<TTTableViewDelegate,TTTableViewDataSource>

,但似乎 -(Class)tableView:(UITableView*)tableView cellClassForObject:(id) 对象没有被调用。 ..我错过了什么吗?

I have TTViewController include a TTTableView inside and init TTTableView like below:

- (void)loadView{
    appTableView = [[TTTableView alloc] initWithFrame:CGRectMake(10, 20, self.view.width - 20, (self.view.height - 44 - 49)/2 - 40)];
        appTableView.backgroundColor = [UIColor clearColor];

        appTableView.delegate = self;
        appTableView.separatorStyle = UITableViewCellSeparatorStyleNone;
        [self.view addSubview:appTableView];
}

and in

- (void)requestDidFinishLoad:(TTURLRequest*)request {
   appTableView.dataSource = [TTListDataSource dataSourceWithObjects:
                           [CustomTTTableSubtitleItem itemWithTitle:result.resourceName text:textCombine ],nil];

}

I've coded this:

- (Class)tableView:(UITableView*)tableView cellClassForObject:(id) object { 

    if ([object isKindOfClass:[CustomTTTableSubtitleItem class]]) { 
        NSLog(@"here");
        return [CustomTTTableSubtitleItemCell class];       
    } 
    else { 
        return [self tableView:tableView cellClassForObject:object]; 
    }
}

and of course I added protocol

@interface TestController : TTViewController<TTTableViewDelegate,TTTableViewDataSource>

but seems -(Class)tableView:(UITableView*)tableView cellClassForObject:(id) object not be called... anything I missed?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

爱人如己 2024-12-14 04:50:57

- (Class)tableView:(UITableView*)tableView cellClassForObject:(id) object 是一个 TTTableViewDataSource 函数,因此您必须将 TTListDataSource 扩展到您自己的数据源类中,并在那里重写此函数并且不在 TTViewController 下。

在您的 TTViewController 中,创建自定义数据源:

///////////////////////////////////////////////////////////////////////////////////////////////////
- (void)requestDidFinishLoad:(TTURLRequest*)request {
    self.dataSource = [[[YourDataDataSource alloc] 
                      initWithResults:results] autorelease];
}

并在您的自定义 TTTableViewDataSource 中添加您的 - (Class)tableView:(UITableView*)tableView cellClassForObject:(id) object 自定义函数

the - (Class)tableView:(UITableView*)tableView cellClassForObject:(id) object is a TTTableViewDataSource function, so you will have to extend the TTListDataSource into your own data source class, and override this function there and not under TTViewController.

In your TTViewController, create the custom data source:

///////////////////////////////////////////////////////////////////////////////////////////////////
- (void)requestDidFinishLoad:(TTURLRequest*)request {
    self.dataSource = [[[YourDataDataSource alloc] 
                      initWithResults:results] autorelease];
}

and in your custom TTTableViewDataSource have your - (Class)tableView:(UITableView*)tableView cellClassForObject:(id) object custom function

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文