没有条目的UITableView

时间:2015-05-18 09:42:23

标签: ios uitableview

我有一个问题。在我的应用程序中,我有一个带有列表的TableView,我想删除最后一条记录,以便在TableView上显示“没有更多的数据”。谢谢!

4 个答案:

答案 0 :(得分:2)

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
    if(self.searchUserResultList count==0))
    {
        // Display a message when the table is empty
        UILabel *messageLabel = [[UILabel alloc] initWithFrame:CGRectMake(self.view.center.x-15, self.view.frame.size.height/2 , self.view.bounds.size.width, self.view.bounds.size.height)];

        messageLabel.autoresizingMask=UIViewAutoresizingFlexibleBottomMargin | UIViewAutoresizingFlexibleTopMargin | UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleRightMargin | UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
        messageLabel.text = @"NO SEARCH RESULTS" ;
        messageLabel.textColor = [UIColor whiteColor];
        messageLabel.numberOfLines = 0;
        messageLabel.textAlignment = NSTextAlignmentCenter;
        messageLabel.font = [UIFont fontWithName:@"Palatino-Italic" size:23];
        [messageLabel sizeToFit];
        messageLabel.tag = 222;

        messageLabel.frame = CGRectMake(self.view.center.x-(messageLabel.frame.size.width/2), self.view.frame.size.height/2, messageLabel.frame.size.width, messageLabel.frame.size.height);

        [self.view addSubview:messageLabel];

        self.tableView.hidden = YES;

        return 0;
    }

    for (UIView* b in self.view.subviews)
    {
        if(b.tag == 222)
        {
            [b removeFromSuperview];
        }
    }
    self.tableView.hidden = NO;
    return 1;
}

答案 1 :(得分:0)

self.tableView.tableHeaderView=header;  //UIView
 self.tableView.tableFooterView=footer//UIView

如果已删除,您可以检查最后一条记录的条件并添加标题或页脚

使用此方法,并创建标题或页脚视图以显示不再有数据

答案 2 :(得分:0)

您可以使用页眉或页脚,例如:

- (NSString *)tableView:(UITableView *)tableView titleForFooterInSection:(NSInteger)section {
    if ([tableView numberOfRowsInSection:section] == 0) {
        return @"No more data";
    }
    return nil;
}

如果您不喜欢这样,请创建一个标签,将其添加到视图中,并根据行数显示/隐藏它。

答案 3 :(得分:0)

您可以使用原始数据阵列计数(如下所示)轻松完成此操作

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {

    if(arrData.count == 0 )
        return 1;


    return arrData.count;
}


- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"Cell" forIndexPath:indexPath];


    if(arrData.count == 0){
        cell.titleLabel.text=@"No Data";
    }else{
        //Your normal configurations
    }



    return cell;
}

当您从数据数组中删除所有数据时,它将为空白,当您在上次删除的数据后重新加载tableView时,if将返回一个您可以显示为No Data行的单元格。

希望这有帮助。

干杯。