当表格中没有行时将标签放在tableView后面
我正在查看iPhone上的闹钟应用程序,我发现当他们使用自定义图形作为它们的UITableViewCells的灰度渐变时,在表格中没有单元格,有一个背景,看起来类似于分组的表格视图单元格背景,并带有一个标签,表示无警报。当表格中没有行时将标签放在tableView后面
我该如何达到这个效果?目前在我的视图控制器中,我有viewController的视图,“没有警报”和tableView的标签。当我在表格中有零报警时,我只显示标签,并隐藏表格,并在有报警时显示副标识。我得到的问题是图形。
作为一项测试,如果我将表格的背景颜色更改为鲜艳的橙色,那么这个橙色会透射到我的tableViewCells中。 tableViewCells和tableView都被设置为默认的白色,而不是clearColor,然而viewController的视图透过。我错过了什么?谢谢。
使用XIB文件将视图的背景设置为“组表背景颜色”。我们可以将相同的背景图像设置为我们的视图。
您需要确保“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物品浏览器视图的子视图层级中的最顶层子视图(我认为这就是它的原因至少要求 - 无论哪种方式,我指的是弹出菜单,您可以在视图中选择对象)。然后只要你的程序逻辑表示有和没有报警,就隐藏并取消隐藏标签。这是我可能这样做的方式......
你究竟想要达到什么目的? – iMash 2012-04-28 06:28:17