我为实时屏幕摄像机视图创建了一个 custom camera overlay ,并为摄像机,闪光灯和翻转按钮导入了我自己的自定义图标 . 在纵向模式下一切看起来都不错,但是当我将实时相机屏幕切换到横向模式时,相机的方向保持纵向模式并在控制台中显示,

"Error: CGAffineTransformInvert: singular matrix"

我尝试使用 auto resizing mask ,也尝试在纵向和横向模式下为图标设置两个不同的框架 didRotateFromInterfaceOrientation 方法 . 但这些都不起作用 .

我的问题是,横向方向是否仅支持默认的iPhone相机覆盖视图,还是它还支持自定义覆盖视图 .

以下是屏幕截图,显示了从纵向模式切换到横向模式时图标彼此重新定位的行为 . 我想在我的自定义叠加视图中完全喜欢这个 .

Edit:

我已经使用 UIDevice Orientation 方法更改了我的自定义相机叠加层的实时屏幕 . 但是现在,当我尝试从纵向模式切换到横向模式时,框架没有调整大小 . 所以,我只想让整个框架在横向模式下调整大小 . 另外,在这段代码中,如果我尝试更改 CAMERA_TRANSFORM_Y 的值,

#define CAMERA_TRANSFORM_X 1
#define CAMERA_TRANSFORM_Y 1.234

  self.picker.cameraViewTransform = CGAffineTransformScale(self.picker.cameraViewTransform, CAMERA_TRANSFORM_X, CAMERA_TRANSFORM_Y);

叠加视图的大小从顶部和底部边距减少 . 但是,更多的尺寸从底部减少而不是从顶部边缘减少 . 我希望覆盖尺寸从顶部和底部边缘均匀变化 .

这是我的示例代码,

Sample project

Landscape mode

Potrait mode