CALayer - 将故障板放置在故事板UIButtons下面?

时间:2013-04-16 17:15:29

标签: ios uibutton avfoundation calayer avcapturesession

我的故事板里有一个带有几个UIButton的视图控制器。其中一个激活子图层中显示的AVFoundation相机预览图层:

captureVideoPreviewLayer = [[AVCaptureVideoPreviewLayer alloc] initWithSession:session];
captureVideoPreviewLayer.frame = self.view.bounds;
[self.view.layer addSublayer:captureVideoPreviewLayer];

除了预览图层在我的按钮上呈现这一事实之外,这是正常的,因此即使按钮仍然可以点击,用户也无法看到它们。有没有一种简单的方法将子图层放在按钮下面?或者在图层中提升按钮的简单方法?非常感谢!

2 个答案:

答案 0 :(得分:50)

按钮图层是主视图图层的所有子图层。您需要将相机预览图层放在按钮的图层下方。试试这个:

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

答案 1 :(得分:3)

只是添加。您可以通过调用 UIView 方法 bringSubviewToFront 来提升层中UIView的任何子类。

[self.view bringSubviewToFront:self.desiredButton];