
这是一个非常经典的问题!在使用 AVFoundation 和 SwiftUI 混合开发时,坐标系对不齐(存在位移差)通常由以下 原因 导致。
安全区域 (Safe Area) 的干扰 (最常见)
原理:
相机层:你的 CameraScanner 使用了 .edgesIgnoringSafeArea(.all),所以它的 (0,0) 坐标是屏幕的最左上角(包含刘海/动态岛区域)。
绘制层:如果你的 SwiftUI 绘制层没有显式忽略安全区域,SwiftUI 默认会把 (0,0) 放在安全区域内部(刘海下方)。这导致相机认为的点 (100, 100) 在 SwiftUI 看来应该画在更靠下的位置。

解决办法很简单,去掉.edgesIgnoringSafeArea(.all)或者将.edgesIgnoringSafeArea(.all)放在最外层的ZStack上