簡體   English   中英

UIButton在相機流上不可見(Xamarin.iOS)

[英]UIButton are not visible over camera stream (Xamarin.iOS)

我制作了一個Xamarin.iOS應用程序,其中有一個攝像頭流。 在我的情節提要中,我有一個用於拍照的UIButton和一個用於切換相機的UIButton。

但是,當我啟動我的應用程序時,這些按鈕位於相機流下方。

有人知道如何將按鈕放置在攝像機流上嗎?

這是我的代碼

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 View懸停在Button上方,因此我們必須將其發送回View Hierarchy中,以便可以查看Button。

以下任何一項都可以為您工作:

// 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);

編輯:

第二個選項適用於此職位。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM