Модернизация разработки приложений для iOS: замена устаревшего «backgroundColor» на «colorScheme.background»

В постоянно развивающемся мире разработки приложений для iOS крайне важно быть в курсе последних лучших практик и избегать устаревших API. Одним из таких отказов является использование «backgroundColor» в пользу «colorScheme.background». В этой статье мы рассмотрим различные методы замены устаревшего API «backgroundColor» рекомендуемым API «colorScheme.background» вместе с кодом. примеры.

Метод 1. Использование Interface Builder
Если вы используете Interface Builder для разработки пользовательского интерфейса, выполните следующие действия:

  1. Выберите представление или компонент, использующий «backgroundColor».
  2. Откройте инспектор атрибутов.
  3. Найдите параметр «Фон» и измените его на «По умолчанию» или «Цвет фона системы».
  4. Убедитесь, что изменение было применено правильно.

Пример кода:

// Before
myView.backgroundColor = UIColor.red
// After
myView.backgroundColor = UIColor.systemBackground

Метод 2: программная установка цвета фона
Если вы устанавливаете цвет фона программно, вы можете обновить свой код следующим образом:

Пример кода:

// Before
myView.backgroundColor = UIColor.red
// After
if let colorScheme = self.traitCollection.colorScheme {
    myView.backgroundColor = colorScheme.background
} else {
    myView.backgroundColor = UIColor.systemBackground
}

Метод 3. Поддержка нескольких версий iOS
Чтобы обеспечить обратную совместимость со старыми версиями iOS, вы можете использовать среду выполнения Objective-C для условной установки цвета фона в зависимости от версии iOS:

Пример кода:

import ObjectiveC.runtime
// Before
myView.backgroundColor = UIColor.red
// After
if #available(iOS 13.0, *) {
    myView.backgroundColor = UIColor { (traitCollection) -> UIColor in
        if let colorScheme = traitCollection.colorScheme {
            return colorScheme.background
        } else {
            return UIColor.systemBackground
        }
    }
} else {
    myView.backgroundColor = UIColor.systemBackground
}

Заменив устаревший API «backgroundColor» на «colorScheme.background», вы гарантируете, что ваше приложение для iOS будет соответствовать последним рекомендациям по дизайну. В этой статье рассмотрено несколько способов осуществления этого перехода, независимо от того, используете ли вы Interface Builder или программно устанавливаете цвет фона. Не забудьте тщательно протестировать изменения в разных версиях iOS, чтобы обеспечить обратную совместимость.

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