Подтвердить что ты не робот

iOS - цвет на симуляторе Xcode отличается от цвета на устройстве

Обзор

Цвет фона моего iPhone-приложения в симуляторе (iMac) отличается от цвета на устройстве (iPhone 3GS).

EDIT (добавлен следующий раздел)

Все разные:

  • цвет доски объявлений (файл xib)
  • цвет симулятора
  • цвет устройства

Полагаю, я должен поработать с тем, как он выглядит на устройстве.

Вопросы

  • Это общая проблема, с которой сталкиваются другие разработчики, и есть ли способ согласования цветов (систематическая процедура)?
  • Цвет будет выглядеть по-разному в разных версиях iPhone (3gs/4/4s) или всего цвета?
  • Я что-то пропустил, есть ли какой-то конкретный цветовой профиль, который я должен использовать?
  • Есть ли что-то вроде эмпирического правила, где значения RGB зависят от определенного процента?
  • В iPhone 4 и 4S цвет соответствует симулятору? (У меня нет iPhone4 и 4S, поэтому я не уверен.)
4b9b3361

Ответ 1

Кредит отправляется @jtbandes за предложение отправить скриншоты, которые привели к решению

Я просто отвечаю на вопрос о полноте.

Я выполнил следующие шаги:

  • Сделайте снимок экрана в раскадровке
  • Сделайте снимок экрана на устройстве (используйте поток почты/фото на свой Mac)
  • Используйте подборщик цветов (часть цветовой палитры Mac OS), чтобы выбрать одно и то же место на обоих снимках экрана.
  • Запишите значения RGB (доступные в цветовой палитре Mac OS) пятен, выбранных на шаге 3
  • сравнить значения RGB и увидеть разницу
  • добавьте смещение RGB в соответствии с цветом.

Мое RGB смещение (не следует слепо)

основанный на моем опыте, я добавил следующие значения RGB, чтобы получить цвет, который я хотел, он только грубый и работал у меня:

  • Красный +12
  • Зеленый +19
  • Синий +16

Различные углы (лучше всего держать горизонтально)

Удержание телефона под разными углами также дает разные оттенки, сохраняя его горизонтально, давая цвет

Ответ 2

Как указывали другие, это проблема Цветовых пространств.

Необходимо выполнить две задачи:

  • Получить цвет источника с использованием цветового пространства sRGB.
  • Установите цвет в Interface Builder, используя цветовое пространство sRGB.

Задача 1

Вы можете использовать приложение Apple Digital Color Meter для выбора нужного цвета, используя параметр Display in sRGB, но выход очень ограничен.

Другой вариант - использовать приложение типа SipIt (доступно бесплатно в App Store, последний раз я проверил). Убедитесь, что вы выбрали выборку в правильном цветовом пространстве, выполнив:

Preferences -> General -> Color Profiles -> sRGB

Вы также можете установить выходной формат (например, шестую строку).

введите описание изображения здесь Задача 2

В интерфейсе Builder откройте окно "Цвет", выберите вторую панель, выберите "RGB Sliders". Затем щелкните значок cog, чтобы выбрать цветной профиль sRGB.

введите описание изображения здесь

После этого вставьте свое значение цвета в поле Hex Color #

Вы закончили! Теперь ваши цвета должны соответствовать.

Я никоим образом не связан с SipIt. Но я использую его в течение нескольких лет, и это очень удобно. Я бы рекомендовал его любому дизайнеру.

Ответ 3

Текущая (начиная с 3/17/14) ссылка CGColorSpace содержит следующий текст, в котором говорится, что sRGB - это цветное пространство нативного устройства для iOS.

Цветные пространства и iOS: iOS не поддерживает ColorSync, поэтому все ресурсы должны быть предоставлены в цветовом пространстве собственного устройства: sRGB.

Ответ 4

Это о цветовых пространствах.

Убедитесь, что вы выбираете цвет из цветового пространства sRGB и копируете его значения RGBA в Interface Builder, выбирая sRGB IEC61966-2.1 в выпадающем меню.

Если вы выбираете цвет в одном цветовом пространстве и генерируете его в другом цветовом пространстве, он будет выглядеть по-другому, несмотря на то, что он воспроизводит те же значения RGBA.

Кроме того, имейте в виду, что при генерации цвета через код, используя UIColor(red:green:blue:alpha:), он генерируется по цветовому пространству sRGB по умолчанию. Вот почему так удобно использовать этот (вместо Adobe RGB, P3 или любой другой). Кроме того, sRGB является стандартом, который наиболее часто используется в отрасли.

Интересный факт: этот конструктор UIColor, о котором я упоминал выше, создает цвета в пространстве sRGB с Xcode8. Раньше эта функция использовалась для создания их в пространстве Generic RGB. Вот почему это может вызвать недоумение.

Вот ресурс, который распространяется на тему: https://medium.com/@volbap/working-efficiently-with-colors-in-xcode-bc4c58b16f9a

Ответ 5

iPhone использует управление цветовым пространством, поэтому, если вы хотите более "научное" решение, вы можете создать свое собственное цветовое пространство, например, с помощью CGColorSpaceCreateCalibratedRGB. Это на Core графическом уровне, хотя.

Ответ 6

Лучший способ конвертировать значения RGB в sRGB - это использовать инструмент "Digital Color Meter" в Mac, просто проверьте "Display in sRGB"

Digital Color Meter

затем используйте значения sRGB в коде вместо RGB native values ​​

введите описание изображения здесь

с помощью этого инструмента вы можете узнать общий цвет RGB и установить его прямо в xcode как значения RGB

Ответ 7

Еще одно простое решение при работе с файлами изображений в вашем приложении. Во-первых, установите цветовое пространство в Xcode на sRGB IEC61966-2.1 и примените свои цвета. Затем, прежде чем импортировать какие-либо изображения в приложение, сопоставьте свои изображения с профилем sRGB IEC61966-2.1 с помощью утилиты ColorSync на Mac. Работала отлично для меня, и мой фон теперь идеально соответствует моим импортированным изображениям. Надеюсь, это поможет кому-то.

Ответ 8

У меня была аналогичная проблема, особенно с зелеными в моем проекте. Моя проблема оказалась в том, что некоторые из моих активов были созданы в иллюстраторе, а цвет был установлен в CMYK вместо RGB. Я не уверен, что это была ваша проблема или нет, но это может быть полезно для тех, кто наткнется на этот вопрос в будущем. Я изменил иллюстратор "Режим цвета документа" на RGB, и все хорошо.

Ответ 9

Вы можете использовать этот webPage для разных колод цветов в Xcode. например, Generic и Device Colors немного отличаются друг от друга.