在视图的图层上方加载子视图

时间:2012-01-13 17:44:50

标签: iphone objective-c ios xcode

我遵循了使用AvFoundation Framework拍照的教程。 所以我并不精通它......这就是一点。

在应用程序中......在笔尖中。 有一个视图(SUBVIEW)作为主视图(MAINVIEW)的子视图。 并且有一个图像视图和按钮作为子视图View(SUBVIEW)的子视图而不是主视图。

教程中有代码(对于子视图)

AVCaptureVideoPreviewLayer *captureVideoPreviewLayer = [[AVCaptureVideoPreviewLayer alloc] initWithSession:session];


    [self.vImagePreview.layer addSublayer:captureVideoPreviewLayer];

但是应用了这个之后,图像视图出现在SUBVIEW的后面,而不是在它前面,因为它应该在笔尖中。 因此,如何在视图前面显示图像视图.vimagepreview是SUBVIEW

4 个答案:

答案 0 :(得分:1)

我猜你需要把你的子视图(图像视图容器视图)放在前面。

检查出来:bringSubViewToFront:

它的UIView类方法。

让我知道这是否适合您

答案 1 :(得分:1)

尝试以编程方式创建新视图,添加图层,然后将视图添加到子视图中。

AVCaptureVideoPreviewLayer *captureVideoPreviewLayer = [[AVCaptureVideoPreviewLayer alloc] initWithSession:session];
UIView *newView = [[UIView alloc] initWithFrame:SUBVIEW.bounds];
[newView.layer addSublayer: captureVideoPreviewLayer];
[SUBVIEW addSubview: newView];

这应该确保图层位于子视图之上。

答案 2 :(得分:1)

这适用于iOS7和iOS8。

[videoPreviewLayerParentView.layer insertSublayer:videoPreviewLayer atIndex:0];
[videoPreviewLayerParentView.layer insertSublayer:aboveView.layer atIndex:1];

答案 3 :(得分:0)

尝试重新排序z-index:

//subview to go infront
frontView.layer.zPosition = 100

//layer to go to back
backLayer.zPosition = 0