将UIButton添加到UITableViewCell,以防搜索没有结果,空数组

时间:2014-07-16 20:34:08

标签: ios objective-c uitableview

如果带有搜索结果的button为空,我会在第一个UITableViewCell上显示以下代码以显示NSArray。现在,我的numberOfRowsInSectionNSArray + 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添加为NSArray,以防搜索{{1}}为空。< / p>

它完美无缺,我对此代码没有任何问题,但由于我现在需要做类似的事情,我只是想知道这是否是最佳方法。我对于我的tableview必须呈现的每个单元格运行此代码感到不舒服。我想在数据库连接返回空时将按钮添加到{{1}},但是,它仍然不是一个很好的代码。

任何有关更客观,更干净的代码的建议都会很棒。如果没有,那么就去吧!你做得很好&#34;,也会起作用。 :)

1 个答案:

答案 0 :(得分:1)

您应该将按钮放在tableview的页眉或页脚中。如果数组有结果,请删除tableview的页脚或标题。如果数组没有结果,则将视图添加到页脚或标题。您应该将此代码放在函数中,以确定数组是否包含数据。这样,UIBUtton的放置不依赖于单元格,所以现在您不必为tableview中的每个单元格运行它。