【问题标题】:Autoresize UIView in Xamarin.iOS ViewRenderer在 Xamarin.iOS ViewRenderer 中自动调整 UIView
【发布时间】:2018-07-18 20:27:07
【问题描述】:

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

现在,我让 ViewRendererUIView 渲染到 Xamarin.Forms.View

在 OnElementChanged 我有以下几行:

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

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

但在旋转更改时,UIView 不会调整大小并且预览会翻转。你们如何处理这个问题? 我似乎没有朝着正确的方向寻找,因为我没有找到一个简单的解决方案来使 UIView 在方向更改时调整大小,甚至调整方向更改事件的大小。

【问题讨论】:

    标签: c# ios uiview xamarin.ios autoresize


    【解决方案1】:

    我找到了答案。 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
        }
    

    【讨论】:

      猜你喜欢
      • 2013-07-16
      • 2016-07-15
      • 1970-01-01
      • 1970-01-01
      • 2011-07-14
      • 2011-01-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多