【发布时间】:2024-04-14 22:55:01
【问题描述】:
升级到 XCode 8 后,我注意到我的一些视图(在 Interface Builder 中布局)现在颜色不正确。
具体来说,我的登录页面上有两个自定义视图,它们通常具有白色背景。升级到 XCode 8 后,它们的背景颜色清晰了!看起来很糟糕。
我做了一些调查并从 Apple 发现了这个:
Interface Builder 文档中的颜色值在渲染和编译期间正确使用颜色空间。早期版本的 Xcode 错误处理了保存在 iOS 和 tvOS 文档中的色彩空间。 Xcode 8 以保留其在设备上的感知外观的方式转换现有颜色,并根据需要更新源文档中的颜色空间或组件值。 (7645087)
果然,当我查看破坏事件的提交的差异时:
这个:
<rect key="frame" x="8" y="8" width="88" height="48"/>
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
被替换为:
<color key="backgroundColor" red="0.0" green="0.0" blue="0.0" alpha="0.0" colorSpace="custom" customColorSpace="sRGB"/>
我能做些什么来解决这个问题?以下是我尝试过的一些事情:
1) 在界面生成器中,选择视图,然后打开背景颜色的调色板。单击齿轮图标,然后选择 SRGB。也尝试了其他配置文件,似乎没有任何效果。
2) 尝试恢复 XIB 文件。不能这样做,因为它是 XCode 8 升级的一部分。在选择所需的 iPhone 尺寸后,当您为视图控制器调用“更新帧”时,颜色配置文件会发生这种变化。
任何人有任何其他建议都会很有帮助!
【问题讨论】:
标签: ios objective-c interface-builder xcode8 xcode-storyboard