CALayer – 放置在storyboard UIButton下面的子图层?

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

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

这个工作正常,除了预览层被渲染在我的button之上,所以即使button仍然是可点击的,它们不能被用户看到。 有一个简单的方法来放置button下面的子图层? 或者一个简单的方法来提升图层中的button? 非常感谢!

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

 // 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在该图层中向上提升UIView的任何子类。

 [self.view bringSubviewToFront:self.desiredButton];