当 PageSheet 设置动画时,UINavigationBar 会渗出背景
UINavigationBar bleeding its background when PageSheet is animating
我的应用程序有一个 UIViewController
,其中使用 iOS 13 上引入的新 .pageSheet
模态表示样式。
这个 UIViewController
在顶部有一个 UINavigationBar
并且它被约束固定在顶部,前导和尾随。
我注意到当 UIViewController
正在动画时,此视图的背景会变成白色。在真实设备上查看录制的 GIF:
有什么办法可以解决这个问题吗? UIViewController
和 UINavigationBar
是通过编程方式创建的。
也许这样做可以解决问题?
override func layoutSubviews() {
super.layoutSubviews()
var originalFrame = frame
frame = originalFrame
}
我正在使用 Swift 5.1 和 Xcode 11.3。 iPhone 是 运行 iOS 13.1.3.
可能您将视图的图层设置为光栅化,这导致 .pageSheet
动画无法正确绘制。
解决办法,去掉下面的代码:
navigationBar.layer.shouldRasterize = true
navigationBar.layer.rasterizationScale = UIScreen.main.scale
我的应用程序有一个 UIViewController
,其中使用 iOS 13 上引入的新 .pageSheet
模态表示样式。
这个 UIViewController
在顶部有一个 UINavigationBar
并且它被约束固定在顶部,前导和尾随。
我注意到当 UIViewController
正在动画时,此视图的背景会变成白色。在真实设备上查看录制的 GIF:
有什么办法可以解决这个问题吗? UIViewController
和 UINavigationBar
是通过编程方式创建的。
也许这样做可以解决问题?
override func layoutSubviews() {
super.layoutSubviews()
var originalFrame = frame
frame = originalFrame
}
我正在使用 Swift 5.1 和 Xcode 11.3。 iPhone 是 运行 iOS 13.1.3.
可能您将视图的图层设置为光栅化,这导致 .pageSheet
动画无法正确绘制。
解决办法,去掉下面的代码:
navigationBar.layer.shouldRasterize = true
navigationBar.layer.rasterizationScale = UIScreen.main.scale