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

时间:2013-02-22 08:00:44

标签: uitableview

基本上,我有一个UITableView,它可以保存警报。

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

如果没有闹钟,并且表格视图为空,我希望有一些占位符文字,例如“按+添加闹钟”。

我已经尝试this并且还发现了一个关于使用显示上述文本的单元格创建占位符UITableView的建议。然后根据是否有任何警报显示/隐藏占位符UITableView或警报UITableView。我无法让它工作,并认为想要一个简单的字符串出现有点多。

如果没有警报,我也尝试创建一个占位符UITableViewCell但是使用numberOfRowsInSection会混淆,这反过来会破坏删除单元格的能力,因为它应该是(因为numberOfRowsInSection永远不能为零)。

更新:我还尝试将UILabel添加到tableView的tableHeaderView(和tableFooterView)。没有运气。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

经过对该网站的一些研究,我通过实施以下委托回调解决了这个问题:

- (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;
    }
}