我有三个 UITableView,它们都需要访问基本相同的数据。唯一的区别是每个表视图如何格式化数据。实现这一点的最佳方法是什么?我在想,如果每个表视图都有某种标签,我可以在发回 UITableViewCell 时从我的数据源中引用它。
问问题
163 次
2 回答
1
每个数据源调用都会传入UITableView
请求信息的对象。将此 tableview 与您的三个进行比较,您可以确定它是哪一个,并以不同的方式格式化数据。我可能会为每个 tableview 实现单独的方法,并将数据源方法传递给适当的方法。然后另一种方法将创建自定义单元创建和设置。例如对于 cellForRowAtIndexPath:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
if (tableView == [self tableView1])
return [self tableView1:tableView cellForRowAtIndexPath:indexPath];
if (tableView == [self tableView2])
return [self tableView2:tableView cellForRowAtIndexPath:indexPath];
if (tableView == [self tableView3])
return [self tableView3:tableView cellForRowAtIndexPath:indexPath];
Assert0(NO, @"UITableView not recognized!");
return nil;
}
- (UITableViewCell *)tableView2:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
// Do normal cell creation for tableView1 here
}
我不知道从同一个数据源运行多个 UITableViews 是否有任何问题,所以请小心行事。
于 2013-08-06T17:35:08.333 回答
1
查看单例设计模式 -这是一个关于如何为 iOS 实现的示例。
于 2013-08-06T17:09:56.117 回答