当表中没有行时,在tableView后面放置一个标签

时间:2012-04-28 06:19:42

标签: iphone uitableview

我正在看iPhone上的闹钟应用程序,我看到当他们使用自定义图形为他们的UITableViewCells灰度渐变时,当表中没有单元格时,有一个背景看起来像类似于分组表格查看单元格背景,其标签显示无警报。

我怎样才能达到这个效果?目前在我的视图控制器中,我有viewController的视图,一个标签为“No Alarms”和tableView。当我在表格中没有警报时,我只显示标签,并在有警报时隐藏表格和副警察。我得到的问题是图形。

作为测试,如果我将表格的背景颜色更改为亮橙色,那橙色会照亮我的tableViewCells。 tableViewCells和tableView都设置为默认的白色,而不是clearColor,而viewController的视图却是透过的。我错过了什么?感谢。

2 个答案:

答案 0 :(得分:0)

使用XIB文件将View的背景设置为“Group Table Background color”。我们可以将相同的背景图像设置为我们的视图。

答案 1 :(得分:0)

您需要确保“No Alarms”标签是视图层次结构中最顶层的子视图。如果是,那么您不必担心隐藏表格视图,也不必处理橙色/白色背景下的问题。

以编程方式,在顶级视图中添加标签看起来像:

UILabel *label = [[UILabel alloc] init];
label.text = @"No Alarms";
// set the properties, autoresizing, etc...
[label sizeToFit];
[self.view addSubview:label];

最后一行是实际将标签添加到视图中的内容。如果您希望标签位于视图中心,您可能希望使用initWithFrame:而不是以这种方式初始化,您可以将其置于视图的中心。

另一个选项(如果您使用的是NIB或故事板)只是创建一个“No Alarms”标签,并确保它是IB项目浏览器视图的子视图层次结构中最顶层的子视图(我认为这就是它的名称)至少 - 无论哪种方式,我指的是弹出菜单,您可以在其中选择视图中的对象)。然后,当程序逻辑显示有和没有警报时,隐藏和取消隐藏标签。这是我可能会这样做的方式......