Ios tableview:cellForRowAtIndexPath从未调用

Ios tableview:cellForRowAtIndexPath从未调用,ios,objective-c,uitableview,Ios,Objective C,Uitableview,我对此很困惑 我试图使用Xcode中的单一视图模板,以编程方式创建一个UITableView分组。看看互联网上的一些例子,没有什么秘密,做到这一点的方法非常简单。我不确定我的实现是否正确,因为从未调用tableView:cellforrowatinexpath:方法,但调用了其他方法并返回一个大于0的整数 有代码,欢迎任何建议。 谢谢 #导入“ViewController.h” #导入“SimpleCell.h” @界面视图控制器() @属性(非原子,强)UITableView*表; @属性(非

我对此很困惑

我试图使用Xcode中的单一视图模板,以编程方式创建一个UITableView分组。看看互联网上的一些例子,没有什么秘密,做到这一点的方法非常简单。我不确定我的实现是否正确,因为从未调用tableView:cellforrowatinexpath:方法,但调用了其他方法并返回一个大于0的整数

有代码,欢迎任何建议。 谢谢

#导入“ViewController.h”
#导入“SimpleCell.h”
@界面视图控制器()
@属性(非原子,强)UITableView*表;
@属性(非原子、强)NSArray*部分;
@性质(非原子,强)NSArray*第1节;
@性质(非原子,强)NSArray*第2节;
@性质(非原子,强)NSArray*第3节;
@结束
@实现视图控制器
静态NSString*常量CellIdentifier=@“Cell”;
-(无效)viewDidLoad
{
[超级视图下载];
//加载视图后,通常从nib执行任何其他设置。
[self.view addSubview:self.table];
[self.view addConstraints:[nsLayoutConstraintsWithVisualFormat:@“V:|[表格]|”
选项:0
指标:零
视图:@{@“table”:self.table}]];
dispatch\u async(dispatch\u get\u main\u queue()^{
[self.table reloadData];
});
}
-(无效)未收到记忆警告
{
[超级记忆警告];
//处置所有可以重新创建的资源。
}
-(UITableView*)表
{
如果(!\u表)
{
_table=[[UITableView alloc]initWithFrame:CGRectZero样式:UITableView样式分组];
_table.delegate=自我;
_table.dataSource=self;
_table.translatesAutoresizingMaskIntoConstraints=否;
_表1.rowHeight=34.0f;
_table.separatorStyle=UITableViewCellSeparatorStyleSingleLine;
_table.backgroundColor=[UIColor grayColor];
_table.showsVerticalScrollIndicator=否;
[_tableregisterclass:[SimpleCell类]forCellReuseIdentifier:CellIdentifier];
}
返回表;
}
-(NSArray*)部分
{
如果(!\u节)
{
_章节=@[“第1节”、“第2节”、“第3节];
}
返回部分;
}
-(NSArray*)第1节
{
如果(!\u第1节)
{
_第1节=@[@“玩家a”、@“玩家b”、@“玩家c”];
}
返回第1节;
}
-(NSArray*)第2节
{
如果(!\u第2节)
{
_第2节=@[@“a区”、@“b区”、@“c区”];
}
返回第2节;
}
-(NSArray*)第3节
{
如果(!\u第3节)
{
_第3节=@[“a区”、“b区”、“c区];
}
返回第3节;
}
#pragma标记-UI表视图委托执行
#pragma mark-UI表视图数据源impl
-(UITableViewCell*)tableView:(UITableView*)tableView cellForRowAtIndexPath:(NSIndexPath*)indexPath
{
DLog();
SimpleCell*cell=[self.table dequeueReusableCellWithIdentifier:CellIdentifier];
如果(!单元格)
cell=[[SimpleCell alloc]initWithStyle:UITableViewCellStyleDefault重用标识符:CellIdentifier];
cell.label.text=[NSString stringWithFormat:@“节:%i行:%i”,indexPath.Section,indexPath.Row];
返回单元;
}
-(NSInteger)表视图:(UITableView*)表视图行数节:(NSInteger)节
{
NSInteger总数=0;
如果(节==0)总计=self.section1.count;
如果(截面==1)总计=self.section2.count;
如果(截面==2)总计=self.section3.count;
DLog(@“行:%i”,总计);
返回总数;
}
-(NSInteger)表格视图中的节数:(UITableView*)表格视图
{
DLog();
返回self.sections.count;
}
@结束
删除以下内容:

[self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|[table]|"
                                                                  options:0
                                                                  metrics:nil
                                                                    views:@{@"table": self.table}]];
那就应该叫它

编辑:

也要改变这一点:

  _table = [[UITableView alloc] initWithFrame:self.view.frame style:UITableViewStyleGrouped];
这似乎可以解决问题,但我不知道为什么。我猜这与表框必须大于0有关

删除此项:

[self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|[table]|"
                                                                  options:0
                                                                  metrics:nil
                                                                    views:@{@"table": self.table}]];
那就应该叫它

编辑:

也要改变这一点:

  _table = [[UITableView alloc] initWithFrame:self.view.frame style:UITableViewStyleGrouped];

这似乎可以解决问题,但我不知道为什么。我猜这与表框必须大于0有关

NSLog
self.section1
numberofrowsinssection:
中,查看它是否存在。是的,它存在,输出是:(“玩家a”、“玩家b”、“玩家c”)
NSLog
self.section1
numberofrowssection:
中,查看它是否存在。是的,这存在,输出是:(“玩家a”“玩家b”,“玩家c”)我已经删除了,结果是一样的。无论如何,我都需要添加一个约束以在界面中显示表格,因为我使用CGRectZero创建了表格框架,并将TranslatesAutoResizengMaskinToConstraints设置为“否”。哼,这还不够,我需要将TranslatesAutoResizengMaskinToConstraints设置为“是”,并将单元格显示到界面。但是我在约束方面犯了很多错误。选中此项:
无法同时满足约束。可能下面列表中至少有一个约束是您不想要的。试着这样做:(1)看看每个约束,试着找出你不期望的约束;(2) 找到添加了不需要的约束的代码,然后修复它。(注意:如果您看到不理解的NSAutoresizingMaskLayoutConstraints,请参阅UIView属性TranslatesAutoResizingMaskToConstraints的文档)
Sorry@random,我的错误。我已经在单元格中添加了一些约束,现在我已经修复了,错误也消失了。我在想为什么CellForRowatineXpath不能在大于0的情况下工作。可能表格仅基于画布大小渲染单元格,但我之前添加的约束条件是自动创建帧。无论如何,这是有道理的,谢谢你的帮助。@JanCássio欢迎你,很高兴你能来