大家好,我的开源项目PakePlus可以将网页/Vue/React项目打包为桌面/手机应用并且小于5M只需几分钟,官网地址:pakeplus.com
这是一个非常经典的问题!在使用 AVFoundation 和 SwiftUI 混合开发时,坐标系对不齐(存在位移差)通常由以下 原因 导致。
安全区域 (Safe Area) 的干扰 (最常见)
原理:
相机层:你的 CameraScanner 使用了 .edgesIgnoringSafeArea(.all),所以它的 (0,0) 坐标是屏幕的最左上角(包含刘海/动态岛区域)。
绘制层:如果你的 SwiftUI 绘制层没有显式忽略安全区域,SwiftUI 默认会把 (0,0) 放在安全区域内部(刘海下方)。这导致相机认为的点 (100, 100) 在 SwiftUI 看来应该画在更靠下的位置。
解决办法很简单,去掉.edgesIgnoringSafeArea(.all)或者将.edgesIgnoringSafeArea(.all)放在最外层的ZStack上
大家好,我是1024小神,技术群 / 私活群 / 股票群 或 交朋友 都可以私信我。 如果你觉得本文有用,一键三连 (点赞、评论、关注),就是对我最大的支持~