C# UI按钮在摄影机流上不可见(Xamarin.iOS)

C# UI按钮在摄影机流上不可见(Xamarin.iOS),c#,ios,xamarin.ios,uibutton,ios-camera,C#,Ios,Xamarin.ios,Uibutton,Ios Camera,我制作了一个Xamarin.iOS应用程序,其中有一个摄像头流。 在我的故事板中,我有一个按钮可以拍照,还有一个按钮可以切换相机 但是当我启动我的应用程序时,按钮就在摄像头下方 有人知道如何将按钮放置在摄影机流上吗 这是我的代码 public override void ViewDidLoad() { base.ViewDidLoad(); liveCameraStream = PhotoView; SetupLiveCameraStr

我制作了一个Xamarin.iOS应用程序,其中有一个摄像头流。 在我的故事板中,我有一个按钮可以拍照,还有一个按钮可以切换相机

但是当我启动我的应用程序时,按钮就在摄像头下方

有人知道如何将按钮放置在摄影机流上吗

这是我的代码

public override void ViewDidLoad()
    {
        base.ViewDidLoad();

        liveCameraStream = PhotoView;

        SetupLiveCameraStream();
    }

    public void SetupLiveCameraStream()
    {
        captureSession = new AVCaptureSession();

        var viewLayer = liveCameraStream.Layer;
        var videoPreviewLayer = new AVCaptureVideoPreviewLayer(captureSession)
        {
            Frame = liveCameraStream.Bounds
        };
        liveCameraStream.Layer.AddSublayer(videoPreviewLayer);

        var captureDevice = AVCaptureDevice.DefaultDeviceWithMediaType(AVMediaType.Video);
        ConfigureCameraForDevice(captureDevice);
        captureDeviceInput = AVCaptureDeviceInput.FromDevice(captureDevice);

        var dictionary = new NSMutableDictionary();
        dictionary[AVVideo.CodecKey] = new NSNumber((int)AVVideoCodec.JPEG);
        stillImageOutput = new AVCaptureStillImageOutput()
        {
            OutputSettings = new NSDictionary()
        };

        captureSession.AddOutput(stillImageOutput);
        captureSession.AddInput(captureDeviceInput);
        captureSession.StartRunning();
    }
在这里,您可以看到带有按钮的情节提要

此处
liveCameraStream
视图悬停在按钮上方,因此我们必须将其发送回视图层次结构中,以便可以查看按钮

以下任何一项都适用于您:

// 1
UIView cameraView = new UIView(videoPreviewLayer.Frame);
cameraView.Layer.AddSublayer(videoPreviewLayer);
View.AddSubview(cameraView);
View.SendSubviewToBack(cameraView);

-------OR-------

// 2
liveCameraStream.Layer.AddSublayer(videoPreviewLayer);
View.SendSubviewToBack(liveCameraStream);
用以上代码行替换以下代码行:

liveCameraStream.Layer.AddSublayer(videoPreviewLayer);
编辑:


第二个选项对这篇文章有效。

很高兴看到它有效!!你能告诉我这两个选项中哪一个有效吗?第二个选项