我在填充子类 UITableView 时遇到问题。
我得到的只是一个空白屏幕。
它被嵌入到 aUIView
中(UITableViewDelegate
并UITableViewDataSource
设置在 中UITableViewController.h
):
TableViewController *tableView = [[TableViewController alloc]
initWithStyle:UITableViewStyleGrouped];
tableView.view.frame = CGRectMake(0.0, 50.0, 320.0,
self.view.bounds.size.height);
tableView.tableView.dataSource = tableView;
tableView.tableView.delegate = tableView;
[self.view addSubview:tableView.view];
然后,在 UITableViewController 我创建一个虚拟数组用作数据源:
library = [[NSArray alloc] initWithObjects:
@"Dummy 1",
@"Dummy 2",
@"Dummy 3",
@"Dummy 4", nil];
然后我执行所需的数据源委托方法,如下所示:
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
return 2;
}
- (NSInteger)tableView:(UITableView *)tableView
numberOfRowsInSection:(NSInteger)section
{
int rows;
if (section == 0) {
rows = [library count];
}
else if (section == 1) {
rows = 0;
}
return rows;
}
- (NSString *)tableView:(UITableView *)tableView
titleForHeaderInSection:(NSInteger)section {
if(section == 0) {
return [NSString stringWithFormat:@"Missions Library"];
}
else {
return [NSString stringWithFormat:@"Acknowledgements"];
}
}
- (UITableViewCell *)tableView:(UITableView *)tableView
cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellId = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellId
forIndexPath:indexPath];
if (cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault
reuseIdentifier:CellId];
}
cell.textLabel.text = [library objectAtIndex:indexPath.row];
cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
return cell;
}
我已经阅读了许多表格视图教程,但我无法弄清楚问题所在。我没有收到错误消息,只是一个空白的表格视图屏幕。
我做错了什么?
几个更新:
如果我不将 tableView 的视图添加为子视图而是直接调用它,我会显示页眉和页脚,但不会显示单元格。
cellForRowAtIndexPath 方法根本没有被调用(我用 NSLog 检查过)。这解释了为什么我没有得到细胞。
整个练习是有一个只占据屏幕下部的分组表格视图。但我的方法可能不是实现这一目标的最佳方法......