首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >iOS8中的相机旋转和OverlayView

iOS8中的相机旋转和OverlayView
EN

Stack Overflow用户
提问于 2014-09-19 09:28:49
回答 1查看 2.3K关注 0票数 2

我在iOS 8中使用iPad摄像头时遇到了一个问题。我在测试版中看到了一些旧问题和一个thread on the Apple Developer Forums,但仍然没有找到解决方案。

这个问题似乎有两个部分。

1)当设备方向旋转时,摄像头本身也会旋转,例如世界在它的一侧

2)在Landscape中打开摄像头时,不会出现overlay。当在肖像中打开时,它是好的。

这是一个使用iOS7作为基础SDK的应用,只有在升级到iOS8的设备上运行时才会出现问题。这个应用程序没有使用故事板,它使用的是nibs。

我希望在Xcode5.1.1中推出这个问题的修复,然后再转向iOS8特定的修复,并在下一个版本中将其用作Base SDK。

下面是我打开摄像头的代码:

代码语言:javascript
复制
if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera] == YES) {

    // Create Camera

    imagePicker = [[UIImagePickerController alloc] init];
    imagePicker.sourceType =  UIImagePickerControllerSourceTypeCamera;
    imagePicker.delegate = self;
    imagePicker.showsCameraControls = NO;

    // Set up custom controls view

    [[NSBundle mainBundle] loadNibNamed:@"OverlayView" owner:self options:nil];
    self.overlayView.frame = imagePicker.cameraOverlayView.frame;
    imagePicker.cameraOverlayView = self.overlayView;
    self.overlayView = nil;

    // Show Camera

    [self presentViewController:imagePicker animated:NO completion:nil];

    [imagePicker release];

}

我也试过

以及OverlayView的工具栏(位于底部)的布局:

如果我将其更改为“在顶部”,它将同时出现在肖像和风景中!所以它肯定与视图/窗口/某个东西的大小有关,尽管当布局保持不变时,它的行为会发生什么变化是很奇怪的。

我用showsCameraControls = YES和散列OverlayView代码块都试过了,问题#1仍然存在,所以它与app上的覆盖无关。

我希望有人已经找到了这个问题的答案,这似乎是一个很常见的问题。

如果你需要更多的细节,请告诉我。

编辑1:修复覆盖(问题#2)

它没有将方向应用于OverlayView,它是这样修复的:

代码语言:javascript
复制
// Grab the window frame and adjust it for orientation - from http://stackoverflow.com/a/15707997/520902

UIView *rootView = [[[UIApplication sharedApplication] keyWindow]
                        rootViewController].view;
CGRect originalFrame = [[UIScreen mainScreen] bounds];
CGRect screenFrame = [rootView convertRect:originalFrame fromView:nil];
...
self.overlayView.frame = imagePicker.cameraOverlayView.frame;

我怀疑这与摄像头没有意识到它也是定向的有关,将继续寻找解决问题#1的方法。

编辑2:更新问题#1

看起来摄像头的旋转可能是苹果的问题。在iOS8上,如果你打开联系人应用程序,编辑联系人并选择“拍照”,同样的问题也会发生--在默认的苹果应用程序中!

我仍然找不到修复方法,所以我现在只是在每次方向改变时销毁并重新创建imagePicker,这很丑陋,但在苹果发布修复程序或出现更好的解决方案之前就足够了。

EN

回答 1

Stack Overflow用户

发布于 2014-10-30 20:14:33

苹果在iOS 8.1中解决了这个问题。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25924975

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档