Как заменить градиентный фон при повороте устройства в iOS 10+ - PullRequest
0 голосов
/ 25 октября 2019

Используя Swift 5, я создаю градиентные фоны для представлений в UIPageControl:

var pageControl = UIPageControl()
func configurePageControl() {
   self.view.applyGradient(colors: [UIColor.HL.PurpleStart,UIColor.HL.PurpleEnd])
}

Отлично работает ... все страницы имеют этот фиолетовый градиентный фон. Но когда вы поворачиваете устройство, градиент поворачивается, но сохраняет свой первоначальный размер, который является размером кадра устройства в предыдущей ориентации.

Так что я просто хочу перерисовать градиент при повороте устройства. Я использую следующий метод, который успешно выполняется после завершения вращения устройства:

override func viewWillTransition(to size: CGSize, with coordinator: UIViewControllerTransitionCoordinator) {
    super.viewWillTransition(to: size, with: coordinator)
    coordinator.animate(alongsideTransition: nil, completion: { _ in
        self.view.applyGradient(colors: [UIColor.HL.PurpleStart,UIColor.HL.PurpleEnd])
    })
}

Но это добавляет новый градиентный фон под существующим. self.view.applyGradient() является более современным методом применения градиентных фонов, чем другие примеры для SO, поэтому другие решения, похоже, не применяются. Так как же удалить / заменить существующий градиент при использовании self.view.applyGradient()?

...