1

经过大量搜索,我似乎无法找到我想要的东西。

我有一个 UITableview,其中某些部分可能一开始是空白的。这是一张图片,可以帮助您了解我在说什么。我想在页脚和页眉之间的中间有一些文本(不是表格单元格)。有什么我可能忽略的吗?

空白部分

4

2 回答 2

2

我所做的是创建一个与 tableview 大小相同的 UILabel 并将其添加到 tableview 中,例如:

UILabel* emptyLabel = [[UILabel alloc] init];
emptyLabel.textAlignment = UITextAlignmentCenter;
emptyLabel.backgroundColor = [UIColor clearColor];
emptyLabel.frame = self.tableView.bounds;
emptyLabel.text = @"Empty";
[self.tableView addSubview:emptyLabel];

然后您可以使用 hidden 属性来显示或隐藏它,例如emptyLabel.hidden = TRUE;

于 2012-08-16T23:47:52.443 回答
1

由于 UITableViews 的性质,我不确定您是否可以用其他东西替换 UITableCell 视图。但是,您没有理由不能完全改变表格单元格本身,使其看起来像一个普通的 UITextLabel 而不是一个单元格!你可以这样做:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    /* Initial setup here... */

    if (thisCellHasNoDataYet) {
        // Prevent highlight on tap
        [cell setSelectionStyle:UITableViewCellSelectionStyleNone]; 
        cell.backgroundColor = [UIColor clearColor];
        cell.textLabel.textColor = [UIColor blackColor];
        cell.textLabel.text = @"TEXT YOU WANT THE 'CELL' TO DISPLAY";
        // etc...
    }
    else {
        // Otherwise we have data to display, set normal cell mode
        [cell setSelectionStyle:UITableViewCellSelectionStyleBlue];
        cell.backgroundColor = [UIColor whiteColor];
        // etc...
}

这里的好处是,一旦满足您的条件,您只需将布尔值(我使用过thisCellHasNoDataYet)设置为TRUE并调用reloadData您的表!

于 2012-08-16T23:34:07.970 回答