• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

ios - 如何将 UIImage 选择器相机方向更改为横向?

[复制链接]
菜鸟教程小白 发表于 2022-12-12 19:58:45 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

我是 IOS 的新手。我正在做一个演示项目,在这个项目中我应该打开 UIImagepicker 来挑选照片和相机来捕捉新的照片,在所有方向。 我知道 UIImagepicker 只支持纵向,但是我已经创建了 UIImagePicker 的类别类,并且我在其中重写了方向方法以支持方向。

问题是我的 UIImagePicker 在所有方向上都可以完美打开,但是当我更改为任何横向模式时,相机会旋转 90 度并进入半屏状态。

所以为了解决这个问题,我添加了一个观察者,它会在方向改变时触发通知。

[[UIDevice currentDevice] beginGeneratingDeviceOrientationNotifications];
    [[NSNotificationCenter defaultCenter] addObserver:self selectorselector(orientationChanged) name"UIDeviceOrientationDidChangeNotification" object:nil];

而被调用的方法是

- (void) orientationChanged
  { 
    if (self.imagePickerController.sourceType==UIImagePickerControllerSourceTypeCamera)
    {

    @try {

             if (orientation == UIInterfaceOrientationLandscapeLeft)
            {
                transform=CGAffineTransformRotate(transform,LANDSCAPE_NEGATIVE_ANGLE * M_PI / LANDSCAPE_ANGLE);
                transform=CGAffineTransformTranslate(transform, -75, -80);
                [self.imagePickerController setCameraViewTransform:transform];

            }
            else if (orientation == UIInterfaceOrientationLandscapeRight)
            {
                transform=CGAffineTransformRotate(transform,LANDSCAPE_NEGATIVE_ANGLE * M_PI / LANDSCAPE_ANGLE);
                transform=CGAffineTransformTranslate(transform, 75, 80);
                [self.imagePickerController setCameraViewTransform:transform];

            }
            else
            {
                //        CGAffineTransform tmpTransform=PORTRAIT_Transform;
                transform=CGAffineTransformRotate(transform,LANDSCAPE_NEGATIVE_ANGLE * M_PI / 90);
                transform=CGAffineTransformTranslate(transform, 0, 0);
                [self.imagePickerController setCameraViewTransform:transform];

            }
    }
    @catch (NSException *exception)
    {
        NSLog(@"Exception occured, Details :%@",exception);
    }
    @finally {

    }

}

}

当我以纵向模式打开相机然后更改为其他方向时,此方法对我来说很好。但是当我以横向模式打开相机时,一切都搞砸了。 我知道我在这里使用了静态值,但我别无选择。

有没有人有任何建议或替代选择。我会非常感谢他/她。

提前致谢!!!



Best Answer-推荐答案


这些答案可以帮助你:

iPhone UIImagePicker Camera in Landscape Orientation

iOS UIImagePickerController result image orientation after upload

这样做的好方法。

关于ios - 如何将 UIImage 选择器相机方向更改为横向?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22248801/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap