首页 > 解决方案 > 在 SwiftUI 中重用 MetalView 而不会破坏其 backingFactor

问题描述

我使用自定义NSViewRepresentableMetalView 在屏幕上渲染 2D MTLTexture,SwiftUI 在NavigationView'sDetailView中。

导航时我注意到严重闪烁NavigationView,因为每次我选择另一个项目时,DetailView都会重新启动,这会导致 MetalView 也完全初始化。

为了防止闪烁,我将其存储MTKView在模型中并重复使用,效果很好——不再闪烁。但是,当第一次重用视图时,支持因素会以某种方式加倍并从那时起保持这种方式。图像在每个轴上呈现两倍大,即使框架和MTKView' 窗口的支持因子没有改变。

我是否必须考虑一些设置才能在不重新缩放的情况下重用 MetalKitView?如果有另一种方法可以防止闪烁,我也会尝试另一种方法。

标签: swiftswiftuimetalmetalkit

解决方案


推荐阅读