Проблема
Я вижу странный визуальный сбой при открытии контроллера представления, который использует UIVisualEffectView
. Это происходит в конце всплывающего перехода и выглядит как sh темного цвета вдоль правого края экрана. Глюк происходит в приложении Simulator и на моем iPhone. Его можно запустить с помощью кнопки возврата, программно или через интерактивный переход.
Видео
Screenshot
For clarity, here's a still shot of the problem frame. The glitchy area is highlighted with a red border.
Пример снимка экрана
Вопрос
Кто-нибудь знает, как это исправить не избавляясь от UIVisualEffectView
? Избавление от UIVisualEffectView
действительно решает проблему.
Код
Контроллер с UIVisualEffectView
(нажимается / выталкивается) очень прост. Вот код:
final class BlurViewController: UIViewController {
let blurEffectView = UIVisualEffectView(
effect: UIBlurEffect(style: .regular)
)
override func viewDidLoad() {
super.viewDidLoad()
view.backgroundColor = .systemBackground
view.addSubview(blurEffectView)
}
override func viewDidLayoutSubviews() {
super.viewDidLayoutSubviews()
blurEffectView.frame = view.bounds
}
}
Примечания
- Это упрощенный пример для точного воспроизведения проблемы. Мое приложение действительно размывает объекты в
BlurViewController
, поэтому мне нужно сохранить UIVisualEffectView
. - Ошибка возникает и для других типов переходов. Например, это может произойти в нижней части экрана при отключении контроллера
BlurViewController
, представленного в стиле pageSheet
. - Проблема видна в Xcode 11 и Xcode 12 beta (12A6159).