使用MvvmCross PictureChooser防止相机在iPad应用程序中旋转

时间:2014-10-27 08:09:18

标签: ios camera rotation xamarin mvvmcross

我正在使用Xamarin和MvvmCross来创建一个iPad应用程序。在这个应用程序中,我使用PictureChooser插件用相机拍照。这一切都以相关的youtube video中可以看到的方式发生。

完成此任务的代码非常简单,可以在下面找到。但是,在实际设备上测试时,相机可能会旋转。

private readonly IMvxPictureChooserTask _pictureChooserTask;

public CameraViewModel(IMvxPictureChooserTask pictureChooserTask)
{
    _pictureChooserTask = pictureChooserTask;
}

private IMvxPictureChooserTask PictureChooserTask { get { return _pictureChooserTask; } }

private void TakePicture()
{
    PictureChooserTask.TakePicture(400, 95,
        async (stream) =>
        {
            using (var memoryStream = new MemoryStream())
            {
                stream.CopyTo(memoryStream);
                var imageBytes = memoryStream.ToArray();

                if (imageBytes == null)
                    return;

                filePath = ProcessImage(imageBytes, FileName);
            }
        },
        () =>
        {
            /* no action - we don't do cancellation */
        }
    );
}

这会导致不必要的行为。相机应保持稳定,并防止在App内旋转。我一直在尝试一些东西,例如在相机模式下阻止应用程序在覆盖bool ShouldAutorotate 方法中旋转,但遗憾的是没有任何结果。

是否有任何我忘记在PictureChooser上设置的设置,或者覆盖方法是我应该执行某些魔术的项目?

提前致谢。

1 个答案:

答案 0 :(得分:0)

用户3455363在问题的评论中提出了对这个问题的回答,非常感谢!最终它似乎是iOS 8中的一个错误.iOS 8.1升级修复了我的App中的这个问题!