如何将视图发送到背景以使其位于主视图的后面?
目的如何将视图发送到背景以使其位于主视图的后面?
我想隐藏主视图后面AVCaptureSession
所以,它的下UIViewController
隐藏,因为它不是对用户可见。
显然,AVCaptureVideoPreviewLayer
是CALayer
的一个子类,我们用它来显示输入设备捕获的视频。
代码
这是我使用的开始会话的代码。该代码开始AVCaptureSession
并使用previewLayer
将其框架放置在视图的图层中。
var err : NSError? = nil captureSession.addInput(AVCaptureDeviceInput(device: captureDevice, error: &err))
if err != nil {
println("error: \(err?.localizedDescription)")
}
var previewLayer = AVCaptureVideoPreviewLayer(session: captureSession)
self.view.layer.addSublayer(previewLayer)
previewLayer?.frame = self.view.layer.frame
captureSession.startRunning()
问题
其他人使用view.sendSubviewToBack(cameraView)
建议,但我不知道如何实现它在我的代码。如何将会话框架放在主视图后面,以便隐藏它?
回答:
提到的sendSubviewToBack
方法只适用于视图,你有层,因此你需要一个不同的解决方案。
你需要的是沿着这将插入previewLayer
作为当前图层层次结构的第一层的
self.view.layer.insertSublayer(previewLayer, atIndex: 0)
线的东西。
或者如果你想要在self.view.layer
之后添加图层,你需要获得self.view.layer
的父级/超级图层self.view.layer.superlayer
,并在那里添加子视图。将导致层
关于索引0
索引0澄清beeing要显示的第一/呈现。如果索引1处的图层位于屏幕的3/4之间,则在剩余的1/4处,索引0处的图层将可见。
如果通过常规addSublayer/addSubview添加视图或图层,它将作为视图层次结构中的最新和最后一个对象进行插入,该对象具有最高索引,最后一个将最后呈现。
以上是 如何将视图发送到背景以使其位于主视图的后面? 的全部内容, 来源链接: utcz.com/qa/264460.html