我在UIView中创建一个UITableView,只使用代码(不使用IB)
m_tableData = [[UITableView alloc] init];
m_tableData.dataSource = self;
m_tableData.delegate = self;
[self addSubview:m_tableData];
并且
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
NSLog(@"%d", [arrPanelListImg count]);
return [arrPanelListImg count];
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"kCell"];
if (cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"kCell"] ;
NSLog(@"%d", indexPath.row);
}
return cell;
}
在日志屏幕中,我看到了
numberOfRowsInSection:方法返回18。 和cellForRowAtIndexPath:方法一样,只运行9次(适合屏幕)。
我的代码中没有发现任何奇怪的内容。所以在这种情况下任何人都对我有任何建议。 谢谢你提前。
答案 0 :(得分:0)
您需要使用UITableView
的{{1}}方法 - 这是initWithFrame:style:
类的指定初始值设定项。
答案 1 :(得分:0)
你的意思是
m_tableData = [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStylePlain];
当我改变它时,与我原来的结果没什么不同。这真的很奇怪,这是我第一次看到这个错误而仍然没有解决方案。
编辑: - 只需删除检查条件单元格== nil并正常工作。