0

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

我怎样才能达到这个效果?目前在我的视图控制器中,我有 viewController 的视图、“无警报”标签和 tableView。当我在表格中有零警报时,我只显示标签,并隐藏表格,当有警报时,反之亦然。我遇到的问题是图形。

作为测试,如果我将表格的背景颜色更改为亮橙色,则该橙色会照射到我的 tableViewCells。tableViewCells 和 tableView 都设置为默认的白色,而不是 clearColor,但 viewController 的视图仍然可以通过。我错过了什么?谢谢。

4

2 回答 2

0

使用 XIB 文件将视图的背景设置为“组表背景颜色”。我们可以为我们的视图设置相同的背景图像。

于 2012-04-28T08:10:43.140 回答
0

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

以编程方式,向顶层视图添加标签看起来像:

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

最后一行是将标签实际添加到您的视图中。如果您想让标签在您想要使用的视图中居中,initWithFrame:而不是仅仅使用 init 方式,您可以将它放在视图的中心。

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

于 2012-04-28T08:53:15.290 回答