После обновления до XCode 8 я заметил, что некоторые из моих представлений (выложенных в Interface Builder) теперь имеют неправильные цвета.
В частности, у меня есть два пользовательских представления на моей странице входа, которые обычно имеют белый фон. После обновления до XCode 8 цвет их фона стал четким! Выглядит ужасно.
Я провел некоторое расследование и нашел это от Apple:
Значения цвета в документах Interface Builder правильно используют цветовое пространство во время рендеринга и компиляции. Более ранние версии Xcode неправильно обрабатывали цветовые пространства, сохраненные в документах iOS и tvOS. Xcode 8 преобразует существующие цвета таким образом, чтобы сохранить их воспринимаемый внешний вид на устройстве, и соответствующим образом обновляет либо цветовое пространство, либо значения компонентов в исходном документе. (7645087)
И, конечно же, когда я смотрю на diff для коммита, который сломал вещи:
Этот:
<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.
Кто-нибудь есть какие-либо другие предложения были бы так полезны!