我有一个应用程序,我正在迁移到iOS7。在我的应用程序中,我有一个UITableViewController的子类,我按顺序填充NSDictionaires数组。 这个类在iOS 7的早期版本中顺利运行。
但是自从我开始在XCode 5中编辑它以来,UITableViewCells没有显示。部分标题是,并且单元格的“放置”似乎也是正确的。
当我在NSLog中输出cellForRowAtIndex返回的单元格时,我得到:
2013-09-27 14:53:00.008 MyApp[25278:a0b] Cell for: <UITableViewCell: 0xc5f7ca0; frame = (0 681; 703 40); text = 'Status'; autoresize = W; layer = <CALayer: 0xc5f7e30>>
我已经切换到使用StoryBoard中的一个单元格,但这没有帮助。 即使我将cellForRowAtIndex更改为:
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"Cell" forIndexPath:indexPath];
cell.textLabel.text = @"Cell";
return cell;
我一无所获。 我删除了我的视图中的所有内容。 viewDidLoad方法。但这没有任何影响。 我还创建了一个新的TableViewController子类。使用上面的代码时,显示单元格没有问题。 有谁知道什么可能导致我的细胞消失?
答案 0 :(得分:0)
确保您已通过在笔尖或故事板中创建单元格或在表格初始化代码中使用以下方法之一来注册单元格:
– registerNib:forCellReuseIdentifier: – registerClass:forCellReuseIdentifier:
答案 1 :(得分:0)
我发现了我的问题。当你寻求帮助时总是会发生。 在我为tableview Datasource设置对象的方法中,我有以下几行:
for(UIView *view in self.view.subviews){
[view removeFromSuperview];
}
我甚至不确定为什么我在那里有那个,可能是因为我没有出队,我起初并没有这样做,因为细胞数量有限,每个细胞都有不同的风格。 我通过在故事板中使用多个设计并在出列时使用不同的标识符来涵盖不同的样式。
答案 2 :(得分:-2)
使用此方法。在你的代码中,如果tableView deque ..方法返回没有单元格。
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
}