1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/internetWei-llDark

Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

LLDark

License MIT Carthage CocoaPods Platform Support

A dark theme framework для iOS, быстро и легко адаптируется к тёмному режиму. Пользователи из материкового Китая могут получить доступ по этой ссылке.

中文介绍.

Особенности:

  • интеграция очень проста, требуется всего несколько изменений, структура проекта не будет нарушена;
  • высокая производительность, обновляйте текущий пользовательский интерфейс страницы только тогда, когда вам нужно обновить;
  • мощный, охватывает все сценарии использования UIColor, UIImage, CGColor;
  • совместим с моделями ниже iOS 13;
  • поддержка получения конфигурации тёмной темы из Интернета;
  • автоматический запуск адаптации — это текущая тема приложения, поддерживает модели ниже iOS 13;
  • поддерживает динамическое изменение любого типа диаграммы запуска.

Демо:

Manual.gif System.gif Screen.gif LightVertical.gif

Использование:

Предпосылки

Настройте тёмные ресурсы: Создайте метод класса + (NSDictionary<id, id> *)llDarkTheme в любой категории NSObject проекта (рекомендуется создать отдельную категорию). Ключ словаря представляет цвет/имя изображения/адрес изображения в светлой теме, а значение словаря представляет цвет/имя изображения/адрес изображения в тёмной теме. Вы можете обратиться к примеру кода:

+ (NSDictionary<id, id> *)llDarkTheme {
    return @{
             UIColor.whiteColor : kColorRGB(27, 27, 27),
             kColorRGB(240, 238, 245) : kColorRGB(39, 39, 39),
             [UIColor colorWithRed:14.0 / 255.0 green:255.0 / 255.0 blue:0.0 alpha:1.0] : [UIColor colorWithRed:0.0 green:14.0 / 255.0 blue:255.0 / 255.0 alpha:1.0],
             @"background_light" : @"background_dark",
             @"~/path/background_light.png" : @"~/path/background_dark.png",
    };
}

Советы:

  1. Необязательно заполнять все цвета/изображения во всех случаях. Для тёмных цветов, которые используются изредка или редко, вы можете обратиться к расширенному использованию, чтобы адаптировать их отдельно.
  2. Если путь к изображению заполнен, необходимо заполнить полный путь к изображению (включая суффикс).

Базовое использование

Для UIColor и CGColor нужно только добавить .themeColor(nil). Для UIImage нужно заменить imageNamed или imageWithContentsOfFile на themeImage.

// UIColor
UIColor.redColor; // Предыдущее использование
UIColor.redColor.themeColor(nil); // Текущее использование

// CGColor
UIColor.redColor.CGColor; // Предыдущее использование
UIColor.redColor.themeCGColor(nil); // Текущее использование

// UIImage
[UIImage imageNamed:@"lightImageName"]; // Предыдущее использование
[UIImage themeImage:@"lightImageName"]; // Текущее использование

Советы:

  1. themeImage адаптирован к двум методам, imageNamed и imageWithContentsOfFile, которые могут передавать имя изображения или путь к изображению.
  2. Только адаптированный Color и Image будут обновлены при переключении темы.

Расширенное использование

1. Если параметр в themeColor() является конкретным объектом Color, тёмная тема обновится с указанным объектом Color.
Если он равен nil, он вернётся к обновлению тёмного цвета, настроенному в llDarkTheme,
Если llDarkTheme не настроен, то
``` **Понять конкретную реализацию.**

11. Если вам нужно поддержать адаптацию тёмного образа запуска в iOS 13 или ниже, назовите тёмное изображение в соответствии с указанными правилами и поместите его в любой каталог проекта.

*Правило именования: launchImage_<ширина экрана>_<высота экрана>*.
Например: launchImage_414_736, этот тёмный образ запуска появится после перехода в тёмный режим на моделях с шириной экрана 414×736 и системах ниже iOS 13.
Если вы хотите адаптировать горизонтальное изображение, вам нужно только поменять местами позиции ширины и высоты, например: launchImage_736_414.
Конкретный эффект можно увидеть, запустив Demo на системе ниже iOS 13 и переключившись в тёмный режим.
Для конкретного именования обратитесь к методу именования изображений в папке LaunchImage в проекте Demo. Он содержит тёмные образы запуска всех моделей ниже iOS 13 (включая горизонтальный экран, исключая модели до iPhone 6).

12. LLLaunchScreen предоставляет некоторые методы класса, разумное использование этих методов класса может идеально заменить любой образ запуска приложения, включая «тёмный вертикальный образ запуска», «тёмный горизонтальный образ запуска», «светлый вертикальный образ запуска» и «светлый горизонтальный образ запуска».
Пожалуйста, обратитесь к файлу LLLaunchScreen.h для конкретных методов.
Для метода использования, пожалуйста, обратитесь к Demo.

**Быстрая адаптация**

Это занимает всего 3 шага, чтобы быстро и идеально адаптироваться к тёмному режиму темы. После тестирования большинство проектов могут быть адаптированы в течение 0,5 дней.
1. Чтобы настроить ресурсы тёмной темы, обратитесь к разделу «Необходимые условия» или обратитесь к расширенному методу 9, чтобы получить адаптацию ресурсов из сети.
2. Адаптируйте цвет и изображение, которые необходимо адаптировать к цвету темы и изображению темы. Для метода адаптации, пожалуйста, обратитесь к разделам «Базовое использование» и «Расширенное использование».
3. Запустите проект и проверьте его полноту.

Советы:
1. Если вам всё ещё нужно адаптировать WKWebView, вы можете [нажать на ссылку](https://www.jianshu.com/p/be578117f84c). Обратитесь к статье для адаптации.
2. По умолчанию системы iOS 13 и выше автоматически адаптируют образ запуска, чтобы следовать изменениям в режиме темы приложения. Если вы хотите использовать систему ниже iOS 13, эта функция также поддерживается. Пожалуйста, обратитесь к расширенным методам 11 и 12.

**Установка**

### CocoaPods
1. Добавьте pod 'LLDark' в свой Podfile.
2. Выполните команду pod install --repo-update.
3. Импортируйте <LLDark/LLDark.h>.

### Carthage
1. Добавьте github "internetWei/LLDark" в ваш Cartfile.
2. Выполните команду carthage update --platform ios и добавьте фреймворк в свой проект.
3. Импортируйте \<LLDark/LLDark.h\>.

### Вручную
1. Загрузите все файлы в поддиректорию LLdark.
2. Добавьте (перетащите) папку LLDark в свой проект.
3. Импортируйте LLDark.h.

**Требования**

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

Примечание:
1. LLDark не изменяет стиль строки состояния, вам необходимо отслеживать режим темы, чтобы изменить стиль строки состояния.
2. Ресурсы изображений, которые должны быть адаптированы к тёмной теме, не рекомендуется размещать в Assets.xcassets. Тест показал, что изображения в NSAttributedString не будут обновляться при переключении темы (загружаются с помощью imageNamed:). Это системная ошибка. Решение состоит в том, чтобы поместить изображение в проект и загрузить его с помощью themeImage:.
3. Экземпляр объекта UIImage имеет метод imageWithRenderingMode:. Вызов этого метода приведёт к регенерации и возврату экземпляра объекта UIImage, это вызовет нормальное обновление. Вместо этого используйте метод renderingModeFrom.

Известные проблемы:
* Другие режимы тем пока не поддерживаются, и в будущем будет свободно поддерживаться множество тем.

Контакт:
Если у вас есть лучшие улучшения, пожалуйста, отправьте мне запрос на вытягивание.

Если у вас есть что-то получше... Создайте, пожалуйста, комментарий с описанием проблемы [Issue](https://github.com/internetWei/llDark/issues).

С автором можно связаться по электронной почте internetwei@foxmail.com.

Лицензия
==============
LLDark выпущена под лицензией MIT. Подробнее см. в файле LICENSE.

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Мощная тёмная тема для iOS, которая поможет вам быстро адаптировать тёмный режим. Развернуть Свернуть
MIT
Отмена

Обновления (3)

все

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/internetWei-llDark.git
git@api.gitlife.ru:oschina-mirror/internetWei-llDark.git
oschina-mirror
internetWei-llDark
internetWei-llDark
master