【问题标题】:iphone: displaying small, live camera image in window (2)iphone:在窗口中显示小的实时摄像头图像 (2)
【发布时间】:2011-11-22 15:27:42
【问题描述】:

我在 viewController 中显示小型实时摄像头图像时遇到了很多麻烦。

我本来希望下面的代码显示相机显示出现在 100x 100 窗口中,但它一直全屏显示!

帮助表示赞赏。

camera = [[UIImagePickerController alloc] init];

UIView *cameraHUD = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 100, 100)];
cameraHUD.userInteractionEnabled = YES;

[camera setSourceType:UIImagePickerControllerSourceTypeCamera];
camera.showsCameraControls = NO;
camera.navigationBarHidden = YES;
camera.toolbarHidden = YES;

camera.cameraOverlayView = cameraHUD;
[self presentModalViewController:camera animated:YES];
[self.view bringSubviewToFront:cameraHUD];

【问题讨论】:

  • 您正在以模态方式(全屏)显示相机视图控制器。
  • 我认为问题在于您混淆了叠加层的作用。覆盖是相机视图上的皮肤。所以它总是全屏的,特别是如果你以模态方式呈现它。如果您将前面的代码用于相机视图,然后使用叠加层显示您需要的任何控件,那么它应该可以工作。

标签: iphone camera camera-overlay


【解决方案1】:

您呈现的是一个新视图而不是您的实际视图,因此默认情况下,一个新的 UIView 具有 contentmode= scale 来填充。 例如,您必须添加以下内容:

[camera setContentMode:UIViewContentModeTopLeft];

但如果你想做一些很酷的事情,你必须将你的相机视图添加为子视图。 我希望它可以帮助你 再见;)

【讨论】:

  • 感谢 derfel 和贾斯汀。我添加了 [cameraHUD setContentMode:UIViewContentModeTopLeft];到上面的方法,但它没有任何影响。仍然显示相机全屏。你能告诉我如何添加一个小的子视图吗?
  • 哦,您必须将视图添加为子视图:[self.view addSubview:cameraHUD]; 或者:您必须创建一个新的空白视图,并且在其中您必须将新视图添加为子视图。
猜你喜欢
  • 2020-01-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-12-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多