ストーリーボードにいくつかのUIButtonを備えたViewControllerがあります。それらの1つは、サブレイヤーに表示されるAVFoundationカメラプレビューレイヤーをアクティブにします。
captureVideoPreviewLayer = [[AVCaptureVideoPreviewLayer alloc] initWithSession:session];
captureVideoPreviewLayer.frame = self.view.bounds;
[self.view.layer addSublayer:captureVideoPreviewLayer];
これは、プレビューレイヤーがボタンの上にレンダリングされるため、ボタンはクリック可能であるにもかかわらず、ユーザーには表示されないという事実を除いて、正しく機能します。ボタンの下にサブレイヤーを配置する簡単な方法はありますか?または、レイヤー内のボタンを上げる簡単な方法はありますか?どうもありがとうございました!
ボタンレイヤーはすべて、メインビューのレイヤーのサブレイヤーです。ボタンのレイヤーの下にカメラプレビューレイヤーを配置する必要があります。これを試して:
// put it behind all other subviews
[self.view.layer insertSublayer:captureVideoPreviewLayer atIndex:0];
// or, put it underneath your buttons, as long as you know which one is the lowest subview
[self.view.layer insertSublayer:captureVideoPreviewLayer below:lowestButtonView.layer];
追加するだけです。 UIViewメソッドbringSubviewToFront。
[self.view bringSubviewToFront:self.desiredButton];