相机覆盖不在中心

时间:2015-02-09 02:12:20

标签: ios cocoa-touch uiimagepickercontroller overlay

我正在尝试为此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];

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

enter image description here

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

enter image description here

如何将叠加层置于实时摄像机中心?

1 个答案:

答案 0 :(得分:1)

那么叠加层是否以y为中心到屏幕边界?

enter image description here

你在这做什么:

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

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