Названные цвета через раскадровку - PullRequest
0 голосов
/ 29 ноября 2018

Для своего приложения MacOS я создал цветной каталог активов.Цель развертывания для моего проекта - 10.11.

Когда я устанавливаю цвета на раскадровке, я могу выбирать из цветового актива.Но когда я пытаюсь установить один из названных цветов программно, мне нужно обернуть его в

if #available(OSX 10.13, *) {
   view.backgroundColor = NSColor(named: "someColor")
} else {
   // Fallback on earlier versions
}

ОРИГИНАЛЬНЫЙ ВОПРОС:

Итак, вопрос в том, почему я 'я не получаю никаких предупреждений о выборе этих цветов через раскадровку?

Я полагаю, мне нужно заменить их на собственный цвет, иначе мое приложение упадет в ОС <10.13, но я ожидаю, что раскадровка не позволитя выбираю эти цвета из-за цели развертывания .. </p>

РЕДАКТИРОВАНИЕ:

Итак, вопрос в том, что происходит, когда я использую эти цвета через раскадровку?Будет ли это сбой приложения?или, может быть, раскадровка может обрабатывать именованные цвета даже для версий ОС <10.13?Потому что я пытался использовать названные цвета через раскадровку, и я установил приложение на Mac с ОС 10.12, и приложение работало просто отлично.Поэтому мне интересно, в чем причина этого .. </p>

PS Этот вопрос также относится к iOS, где минимальная версия для названных цветов - iOS 11

1 Ответ

0 голосов
/ 16 декабря 2018

Это не приведет к краху вашего приложения.С Colours from Assets Catalog у вас есть два варианта:

  1. Используйте его только с раскадровками.
  2. Используя UIColor(named: <#String #>), как вы пытаетесь сделать в своем вопросе.

Единственная проблема в том, что UIColor(named:) доступен в iOS 11.0+ ( См. Документацию )

Так что, если вы хотите использовать его каждый раз, когда вам нужно подуматьо возврате к самой старой версии, и это может быть не совсем то, что вы хотите.

Но есть другое решение, встроенное в Xcode в библиотеке мультимедиа:

enter image description here

Вы можете перетаскивать цвета из каталога активов и Xcodeсоздаст для вас ссылку на этот цвет, который будет работать и в iOS 10.0.

Фактическая строка кода, скрытая в этом цвете:

colorLiteral(red: 0.9411764706, green: 0.07843137255, blue: 0.07843137255, alpha: 1)

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

Некоторое время назад мне нужно подобное решение, поэтому я написал сценарий, который сканирует весь мой проект на предмет каталогов ресурсов, и внутри них найти наборы цветов и создать *Расширение 1035 *, содержащее все цвета из ресурсов:

Вы можете найти его здесь: https://github.com/JakubMazur/SwiftColorsGenerator, и его можно использовать через Марафон (https://github.com/JohnSundell/Marathon)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...