![](/img/trans.png)
[英]How to override LayoutSublayersOfLayer behavior of Xamarin.IOS UIButton?
[英]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.