Я реализую функции для управления темным режимом iOS 13 в своем приложении. У меня проблема с фоном моего ViewController.
У моего контроллера представления есть цвет градиента фона, полученный с помощью CAGradientLayer
.
Мне удалось изменить цвета, составляющие градиент, на основе выбора пользователя, когда он переходит из Темный режим ---> Светлый режим и Светлый режим ---> Темный режим strong > ..
Моя проблема в том, что когда пользователь отправляет в фоновом режиме мое приложение, чтобы перейти в центр управления и изменить режим, цвета градиента, которые я использовал для цвета фона, не меняются сразу ...
Чтобы изменить цвет градиента, пользователь должен закрыть приложение и снова открыть его.
Очень плохой пользовательский опыт, поэтому я хотел спросить вас, как решить эту проблему ...
Это то, что я использую для изменения цвета моего градиента в зависимости от выбранного пользователем iOS
режима.
- (void)viewDidLoad {
[super viewDidLoad];
[self setupBackground];
}
- (void)setupBackground {
UIColor *secondaryColor = self.view.traitCollection.userInterfaceStyle == UIUserInterfaceStyleDark ? UIColor.customRedColor : UIColor.customGreenColor;
CAGradientLayer *gradient = [CAGradientLayer layer];
gradient.frame = UIApplication.sharedApplication.windows.firstObject.bounds;
gradient.colors = @[(id)UIColor.customBlueColor.CGColor, (id)secondaryColor.CGColor];
gradient.locations = @[@0.1, @0.9];
[self.view.layer insertSublayer:gradient atIndex:0];
}