Необходимость замены свойства SCNLight привела к изменению цели с iOS 10 на 9

#ios #swift #scenekit

#iOS #swift #scenekit

Вопрос:

Я должен уменьшить целевую версию с iOS 10 на 9. И одна из моих проблем заключается в том, как правильно заменить этот код :

 if #available(iOS 10.0, *) {
    target.light?.intensity = intensity
} else {
    // Replace 
}
  

Что похоже на интенсивность свойства из SCNLight в более старых версиях iOS?

Комментарии:

1. Почему вы хотите понизить свою целевую версию до iOS9? Процент пользователей iOS, работающих на iOS9, действительно мал, нет смысла поддерживать его больше, особенно если вы до сих пор ориентировались на iOS10. Более того, intensity похоже, что I является добавленным свойством в SCNLight , я не думаю, что ранее была альтернатива этому.

2. Это не мое собственное решение. Я должен. Может быть, есть похожая функция?

Ответ №1:

Я исследовал эту тему в прошлый раз. Я нашел ответ. До SDK 10 вы могли устанавливать интенсивность белого цвета

Итак:

 target.light?.color = UIColor(white: intensity/1000.0, alpha: 1.0)
  

имеет эффект такой же, как

 target.light?.intensity = intensity
  

Проблема решена. Возможно, кто-то в будущем воспользуется моим решением 🙂