ios - XCode 8 不正确的背景颜色 - Storyboard更新的颜色空间
<p><p>升级到 XCode 8 后,我注意到我的一些 View (在 Interface Builder 中布局)现在颜色不正确。</p>
<p>具体来说,我的登录页面上有两个自定义 View ,它们通常具有白色背景。升级到 XCode 8 后,它们的背景颜色清晰了!看起来很糟糕。</p>
<p>我做了一些调查并从 Apple 发现了这个:</p>
<blockquote>
<p>Color values in Interface Builder documents correctly use color space during rendering and compilation. Earlier versions of Xcode mishandled color spaces saved in iOS and tvOS documents. Xcode 8 converts existing colors in a way that preserves their perceptual appearance on device, and updates either the color space or component values in the source document as appropriate. (7645087)</p>
</blockquote>
<p>果然,当我查看破坏事件的提交的差异时:</p>
<p>这个:</p>
<pre><code><rect key="frame" x="8" y="8" width="88" height="48"/>
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
</code></pre>
<p>被替换为:</p>
<pre><code><color key="backgroundColor" red="0.0" green="0.0" blue="0.0" alpha="0.0" colorSpace="custom" customColorSpace="sRGB"/>
</code></pre>
<p>我能做些什么来解决这个问题?以下是我尝试过的一些事情:</p>
<p>1) 在界面生成器中,选择 View ,然后打开背景颜色的调色板。单击齿轮图标,然后选择 SRGB。也尝试了其他配置文件,似乎没有任何效果。</p>
<p>2) 尝试恢复 XIB 文件。不能这样做,因为它是 XCode 8 升级的一部分。在选择所需的 iPhone 尺寸后,当您为 ViewController 调用“更新帧”时,颜色配置文件会发生这种变化。</p>
<p>任何人有任何其他建议都会很有帮助!</p></p>
<br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
<p><p>难以置信。</p>
<p>在我的自定义 View (UIView 的子类)中,我有一个“commonInit”方法,它包含通过“init”、“initWithCoder:”或“initWithFrame:”调用的所有常见实例化代码</p>
<p>在那个“commonInit”方法中,我做了一些我可能不应该做的事情:</p>
<pre><code>self.layer.cornerRadius = 0.5 * self.bounds.size.height;
</code></pre>
<p><strong>不知何故,这适用于 iOS 9.3 + XCode 7,但 <em>不</em> IOS10 + XCode 8</strong></p>
<p>为什么它<em>不应该</em>起作用是有道理的。在实例化时, View 尚未布局,因此它的框架可能是 {0,0,0,0}。</p>
<p>解决方案是将代码移到“layoutSubviews”中。</p>
<p>问题仍然是为什么该行为会导致清晰的背景。可能是因为不支持cornerRadius 0?</p></p>
<p style="font-size: 20px;">关于ios - XCode 8 不正确的背景颜色 -Storyboard更新的颜色空间,我们在Stack Overflow上找到一个类似的问题:
<a href="https://stackoverflow.com/questions/39939088/" rel="noreferrer noopener nofollow" style="color: red;">
https://stackoverflow.com/questions/39939088/
</a>
</p>
页:
[1]