我正在尝试创建一个摄像头视图。基本上是代表相机输入的视图。
现在,我正在 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调整方向更改,甚至调整方向更改事件的大小。
答案 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
}