【发布时间】: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