相机覆盖不在中心

Camera Overlay not in the center

我正在尝试向此 UIImagePickerController 实例添加叠加层,但结果是叠加层偏离中心。

我创建了一个简单的红色方块 (300x300 pt) 来举例说明问题并用作叠加层并将其添加到相机叠加层中,使用以下方法:

  CGRect bounds = [[UIScreen mainScreen] bounds];

  UIView *containerOverlay = [[UIView alloc] initWithFrame:bounds];

  UIImage *overlay = [UIImage imageNamed:@"red"];
  UIImageView *overlayView = [[UIImageView alloc] initWithImage:overlay];
  CGFloat midX = CGRectGetMidX(bounds);
  CGFloat midY = CGRectGetMidY(bounds);

  CGPoint center = CGPointMake(midX, midY);
  overlayView.center = center;
  [containerOverlay addSubview:overlayView];


 [_camera setCameraOverlayView:containerOverlay];

这是实时预览中显示的...完全偏离垂直中心。

令人惊讶的是,当我拍照并且 iOS 向我显示已拍摄的照片时,叠加层神奇地居中...

如何在实时摄像机上将叠加层居中?

叠加层以屏幕边界为中心,对吗?

你在这里做什么:

CGFloat midX = CGRectGetMidX(bounds);
CGFloat midY = CGRectGetMidY(bounds);

如果您希望叠加层与实际图像矩形对齐,您需要偏移底部黑条(它与顶部黑条的高度不同)。