动态原型UITableView中的占位符文本

动态原型UITableView中的占位符文本,uitableview,Uitableview,基本上,我有一个UITableView,它可以保存(比如)警报 屏幕底部有一个“+”按钮用于添加报警,但是,当然,在添加任何报警之前,表是空白的 如果没有报警,并且表视图为空,我希望有某种占位符文本,如“按+添加报警” 我试过了,还找到了一个建议,建议使用显示上述文本的单元格创建占位符UITableView。然后根据是否存在任何报警显示/隐藏占位符UITableView或报警UITableView。我不能让它工作,我想它有点太多了,希望一个简单的字符串出现 我还尝试在没有报警的情况下创建占位符U

基本上,我有一个UITableView,它可以保存(比如)警报

屏幕底部有一个“+”按钮用于添加报警,但是,当然,在添加任何报警之前,表是空白的

如果没有报警,并且表视图为空,我希望有某种占位符文本,如“按+添加报警”

我试过了,还找到了一个建议,建议使用显示上述文本的单元格创建占位符UITableView。然后根据是否存在任何报警显示/隐藏占位符UITableView或报警UITableView。我不能让它工作,我想它有点太多了,希望一个简单的字符串出现

我还尝试在没有报警的情况下创建占位符UITableViewCell,但这会干扰numberOfRowsInSection,从而破坏删除单元格的能力,这也是应该的(因为numberOfRowsInSection永远不能为零)

更新:我还尝试向tableView的tableHeaderView(和tableFooterView)添加UILabel。不走运


有什么想法吗?

在这个网站上做了一些研究之后,我通过实现以下代理回调解决了这个问题:

- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section {
    if (self.alarmList.count == 0) {
        UILabel *label = [[UILabel alloc] init];
        label.text = @"press the + to add an alarm";
        label.textAlignment = UITextAlignmentCenter;
        label.numberOfLines = 2;
        label.font = [UIFont boldSystemFontOfSize:16];
        label.backgroundColor = [UIColor darkTextColor];
        label.textColor = [UIColor whiteColor];
        return label;
    } else {
        return nil;
    }
}

- (CGFloat) tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section {
    if (self.alarmList.count == 0) {
        return 68;
    } else {
        return 0;
    }
}

我打算在早上让它旋转一下,让大脑休息一下,但我认为发布这个问题可能会有所帮助。只需将
UILabel
作为子视图添加到
UItableView
。或者,如果需要更多的查看,您可以添加自定义的
UIView
。只需执行
[self.view addSubview:myLabel]
?底层的UITableView呢?此外,该控制器是TableView控制器。我想知道这是否说明了它的视图…我的意思是将子视图添加到您的tableview本身…而不是在视图上…嗯。我试过了,但运气不好。也许这就是原因——看看第一个答案。