【问题标题】:UIView ignoring background colour in XCode 8 (or layout issue)UIView 忽略 XCode 8 中的背景颜色(或布局问题)
【发布时间】:2017-02-03 19:40:45
【问题描述】:

我一直在 XCode 7 中开发一个应用程序,一切都很好。我想“嘿,让我们更新到 iOS 10”,所以在 XCode 8 中打开项目并开始修复警告并寻找问题。

现在看来UIViews 加载了空白背景,无论是从情节提要还是在代码中创建。在情节提要中,我有一个UIView 和redColor 背景,但第一次显示时(在UICollectionViewCell 中)它出现在clearColor 背景中,或者它会出现,调试它一切看起来都很好.当我从单元格滑开并回到同一个单元格时(通过向后滑动或正在回收的单元格),它会得到正确的颜色......我试过 [cell setNeedsDisplay] 和 [cell setNeedsLayout] 无济于事......

即使我尝试在我的代码中设置backgroundColor,它在最初显示时的外观也无济于事。

没有什么意外的是设置背景颜色(通过创建一个覆盖函数的自定义类来检查)并且视图没有隐藏,alpha 也没有 0(子视图显示正常)。

我应该指出这似乎是 clearColor,因为我拥有的一些子视图 UILabels 仍然显示正常。

我认为我无法提供更多信息,但请随时询问!

编辑:原来backgroundColor 可能会受到很好的尊重,但是视图的布局发生了一些奇怪的事情。框架看起来不错,但如果我使用clipsToBounds,那么我的子视图标签就会消失,所以视图框架必须在屏幕外某处或零大小...

【问题讨论】:

  • 您是否有机会在任何地方设置[UIView appearance]?我也可以确认 iOS 10 中的默认视图是白色的。
  • 没有 UIView 没有(只有 UINavigationBar 和 UIBarButton)。
  • 可以记录单元格的背景颜色吗?
  • 是的,backgroundColor 总是以我期望的颜色注销,但在渲染时似乎显示为clearColor。但是当细胞被回收时,它会得到正确的颜色。
  • 视图的框架是什么?我猜视图的大小有问题,也许高度是 0 什么的。

标签: ios objective-c xcode uiview


【解决方案1】:

似乎是 XCode 8 故事板中的一个错误。一旦 Mike 帮助我将其缩减为某种布局问题,我开始搜索该问题而不是 backgroundColor 问题,并遇到了这个有用的线程:https://stackoverflow.com/a/39589860/1751266

如果您将情节提要恢复为 XCode 7 格式,那么一切都会恢复正常。不幸的是,每次更改情节提要时都必须这样做。但是,嘿,它有效...

【讨论】:

    【解决方案2】:

    我遇到了这个问题,它似乎与布局有关。在我的情况下,我只需要从受影响的视图中“清除所有约束”,然后正确渲染背景颜色。

    【讨论】:

      猜你喜欢
      • 2012-12-28
      • 1970-01-01
      • 2021-03-01
      • 1970-01-01
      • 2015-02-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-02-14
      相关资源
      最近更新 更多