我得到了以下代码,以显示button
在第一个UITableViewCell
上,以防NSArray
的搜索结果为空。现在,我的numberOfRowsInSection
有NSArray
+ 1,这样的话,我的表格将总是至少有一个单元格。
这是我的cellForRowAtIndexPath
:
if ([cell.contentView viewWithTag:1]) {
[[cell.contentView viewWithTag:1] removeFromSuperview];
}
if ((self.searchDisplayController.isActive && indexPath.row == [self.searchResults count]) || (!self.searchDisplayController.isActive && indexPath.row == [[self pegarObjetosUnicos] count])) {
// Create UIButton
UIButton *botaoProcurar = [UIButton buttonWithType:UIButtonTypeRoundedRect];
botaoProcurar.frame = CGRectMake(0, 0, 320, 50);
botaoProcurar.showsTouchWhenHighlighted = YES;
[botaoProcurar setTitle:@"Procurar no Banco de Dados" forState:UIControlStateNormal];
botaoProcurar.tag = 1;
[botaoProcurar addTarget:self action:@selector(botaoProcurar) forControlEvents:UIControlEventTouchUpInside];
[cell.contentView addSubview:botaoProcurar];
cell.textLabel.text = @"";
return cell;
}
代码首先删除subview
,以防它找到一个,然后创建并添加button
作为subview
,以防搜索array
为空。
它工作得很完美,我对这段代码没有任何问题,但是因为我现在需要做类似的事情,我只是想知道这是否是最好的方法。我只是不太适应在每个单元格上运行这段代码我的tableview需要渲染。当数据库连接返回空时,我考虑将按钮添加到NSArray
,但是,这仍然不是一个很好的代码。
对于一个更客观和干净的代码的任何建议将是伟大的。如果没有,就说一句"加油!"你做得很好",也会起作用。:)
你应该把按钮放在tableview的页眉或页脚。如果数组有结果,删除表视图的页脚或页眉。如果数组没有结果,则将视图添加到页脚或页眉。您应该将这段代码放在决定数组是否有数据的函数中。这样UIBUtton的位置就不依赖于单元格了,所以现在你不必为tableview中的每个单元格都运行它。