我已经开始使用 UIImagePickerController 来捕获静止图像的项目。我放弃了使用这种简单的机制,因为叠加层和刚刚捕获的图像之间的交互很差。问题如下:如果您有一个覆盖活动,并拍摄照片,刚刚拍摄的图像会旋转以在纵向方向进行方面填充,当用户被呈现使用或重新拍摄图像的选项时。发生这种情况时,无法解除覆盖或旋转覆盖以对应新的静止图像预览方向。不好。
我决定尝试使用 AV Foundation 的各种机制重新实现 UIImagePickerController 的静态图像捕获行为。这非常容易设置,但我仍然有一些挥之不去的问题:
1)我想重新定位机制,使其类似于标准 UIImagePickerController 中的 UI 工作方式。如您所知,在此控制器中,无论手机如何旋转,按钮栏始终固定在纵向的底部。在此按钮栏中,按钮本身的字形会旋转,但其他一切都保持不变。用于闪光灯设置、相机切换和选项的叠加控件确实会重新定向。如何在旋转这些其他元素时让这个标签栏保持固定?有没有办法从旋转中排除某些元素?
2)在进行自动重定向时,我希望 AVVideoCaptureLayer 始终保持活动状态并占据整个屏幕。当设备执行重新定向旋转时,该层的大小会变得奇怪(缩小),并且视频源本身会偏离 90 度。因此,显然这一层正在旋转,但没有旋转到全屏尺寸,并且视频源本身的行为与预期不同。我希望视频保持固定并通过完全旋转占据全屏,向上始终向上,并且在旋转期间不调整预览大小。但我也希望能够像第 1 项中那样,重新定位某些元素。
任何说明如何实现这一点的示例代码都非常感谢。