【发布时间】:2014-10-20 13:57:50
【问题描述】:
在我的故事板中,我将表格视图控制器的背景颜色设置为“默认”设置,在界面生成器中显示为白色。但是,当我运行应用程序时,表格视图控制器的背景颜色为黑色。
【问题讨论】:
标签: ios uitableview colors storyboard interface-builder
在我的故事板中,我将表格视图控制器的背景颜色设置为“默认”设置,在界面生成器中显示为白色。但是,当我运行应用程序时,表格视图控制器的背景颜色为黑色。
【问题讨论】:
标签: ios uitableview colors storyboard interface-builder
这似乎是 Apple 代码中的一个错误。
重现步骤:
如果您查看 xml 文件,您会发现一些有趣的东西。将全新的表格视图控制器拖放到情节提要上将显示情节提要中选择的“[white] Default”选项,但是 xml 将具有背景颜色条目:<color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>。这很奇怪,因为通常当某些内容设置为其默认值时,它将从 xml 文件中排除。
在 Interface Builder 中,如果您再次重新选择“[white] Default”选项,您会注意到透明视图(例如部分标题)后面的背景颜色会出现轻微变化。这是因为即使“[white] Default”选项显示为被选中,它实际上已经删除了 xml 文件中的 <color> 条目。通常,这应该选择视图的默认背景颜色。在这种情况下,它选择黑色。 Interface Builder UI 现在不再与 xml 文件同步。
在 Interface Builder 中,如果您现在选择“[white] White Color”选项,界面将显示“[white] Default”,并且一切都将恢复到您最初将 table view controller 放在故事板。
这意味着Wellow Builder显示Black和White是所选选项的“[White]默认值”。知道哪个被选中的唯一方法是在运行时,或者通过注意 Interface Builder 中透明视图的细微差别。
因此,为了解决这个问题,在背景颜色设置中不要选择“[white] Default”选项,选择“[white] White Color”选项。
选择这个:
... 会显示这个:
...但表格视图将如下所示:(错误行为)
另一方面,选择这个:
... 会显示这个:
...表格视图将如下所示:(正确的行为)
【讨论】:
要更改背景颜色,请尝试将 backgroundView 属性设为 nil,然后在所需的表视图上设置 backgroundColor。
尝试使用这个:
[self.tableView setBackgroundView:nil];
[self.tableView setBackgroundColor:[UIColor whiteColor]];
希望对你有帮助。
【讨论】:
我在 xcode-7-beta 中遇到了同样的问题,我发现的唯一“解决方法”是将 TableView 样式从 Plain 切换到 Grouped。
【讨论】: