UINavigationBar кровоточит своим фоном при анимации PageSheet - PullRequest
0 голосов
/ 20 января 2020

Мое приложение имеет UIViewController, где используется новый модальный стиль презентации .pageSheet, представленный в iOS 13. Этот UIViewController имеет UINavigationBar вверху и закрепляется, по ограничениям, вверху, впереди и позади.

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

enter image description here

Могу ли я что-нибудь сделать, чтобы решить эту проблему? UIViewController и UINavigationBar были созданы программно.

Может быть, это поможет решить эту проблему?

override func layoutSubviews() {
    super.layoutSubviews()
    var originalFrame = frame
    frame = originalFrame
}

Я использую Swift 5.1 и Xcode 11.3. iPhone работает iOS 13.1.3.

1 Ответ

0 голосов
/ 20 января 2020

Возможно, вы установили растровый слой вида, это происходит с анимацией .pageSheet, которая не рисует его правильно.

Решение, удалить код ниже:

navigationBar.layer.shouldRasterize = true
navigationBar.layer.rasterizationScale = UIScreen.main.scale
...