【问题标题】:UITableViewController's background color set to default (white), but appears blackUITableViewController 背景颜色设置为默认(白色),但显示为黑色
【发布时间】:2014-10-20 13:57:50
【问题描述】:

在我的故事板中,我将表格视图控制器的背景颜色设置为“默认”设置,在界面生成器中显示为白色。但是,当我运行应用程序时,表格视图控制器的背景颜色为黑色。

【问题讨论】:

    标签: ios uitableview colors storyboard interface-builder


    【解决方案1】:

    这似乎是 Apple 代码中的一个错误。

    重现步骤:

    1. 创建一个全新的 Xcode 项目。
    2. 将表格视图控制器拖放到情节提要上,并使其成为初始视图控制器。
    3. 在表格视图控制器中选择表格视图并将其背景颜色从“[white] Default”更改为“[white] Default”(即重新选择列表中的顶部选项)。
    4. 运行应用程序。
    5. 尽管 Interface Builder 将背景颜色显示为“[white] Default”,但运行时的实际背景颜色是黑色。它应该明显是白色,因为这是 Interface Builder 报告的默认颜色。

    如果您查看 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”选项。

    总结

    选择这个:

    ... 会显示这个:

    ...但表格视图将如下所示:(错误行为)

    另一方面,选择这个:

    ... 会显示这个:

    ...表格视图将如下所示:(正确的行为)

    【讨论】:

    • 将 contentView 或标题标签的 bgcolor 设置为白色
    • @andnan:即使表格视图中没有单元格,我也希望背景是白色的。
    【解决方案2】:

    要更改背景颜色,请尝试将 backgroundView 属性设为 nil,然后在所需的表视图上设置 backgroundColor。

    尝试使用这个:

      [self.tableView setBackgroundView:nil];
      [self.tableView setBackgroundColor:[UIColor whiteColor]];
    

    希望对你有帮助。

    【讨论】:

    • 在提供代码/解决方案时,您应该简要介绍您建议的代码/解决方案,这将使您的答案更加清晰有力,足以解决问题,同时获得支持!跨度>
    • 感谢@PareshMayani 的建议。我猜代码是不言自明的。此外,根据您的建议添加了关于我的代码的简要说明。
    • 感谢您的回答,但由于 Interface Builder 为我提供了选择背景颜色的选项,我一直在寻找非代码解决方案。
    【解决方案3】:

    我在 xcode-7-beta 中遇到了同样的问题,我发现的唯一“解决方法”是将 TableView 样式从 Plain 切换到 Grouped。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-03
      • 2020-10-12
      • 2017-09-04
      • 1970-01-01
      • 2013-10-26
      • 2011-01-15
      相关资源
      最近更新 更多