如何将视图发送到背景以使其位于主视图的后面?

目的如何将视图发送到背景以使其位于主视图的后面?

我想隐藏主视图后面AVCaptureSession所以,它的下UIViewController隐藏,因为它不是对用户可见。

显然,AVCaptureVideoPreviewLayerCALayer的一个子类,我们用它来显示输入设备捕获的视频。

代码

这是我使用的开始会话的代码。该代码开始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

回到顶部