在Xamarin.iOS ViewRenderer

时间:2018-02-08 10:00:02

标签: c# ios uiview xamarin.ios autoresize

我正在尝试创建一个摄像头视图。基本上是代表相机输入的视图。

现在,我正在 ViewRenderer Xamarin.Forms.View 呈现 UIView

在OnElementChanged中的

我有以下几行:

if(Control == null)
{
    var uiView = new UIView(UIScreen.MainScreen.Bounds)
                {
                    AutoresizingMask = UIViewAutoresizing.FlexibleWidth | UIViewAutoresizing.FlexibleHeight,
                    AutosizesSubviews = true
                };
}

这使我的UIView适合整个屏幕(这就是我想要的)。

但是在轮换更改时,UIView不会调整大小并翻转预览。你们是怎么做到这一点的? 我似乎没有找到正确的方向,因为我没有找到一个简单的解决方案来使UIView调整方向更改,甚至调整方向更改事件的大小。

1 个答案:

答案 0 :(得分:0)

我找到了答案。 UIView实际调整大小,我甚至不必在我的问题中设置两个提到的属性。

未调整大小的内容是附加的AVCaptureVideoPreviewLayer。 所以我在ViewRenderer实现的覆盖LayoutSubviews()中相应地调整它的大小:

    public override void LayoutSubviews()
    {
        base.LayoutSubviews();
        previewLayer.Frame = Bounds; //Important to resize the preview layer so it fits the whole screen on orientation change
    }