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

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

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

===============>>#1 票数:51 已采纳

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

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

===============>>#2 票数:3

只是补充一下。 您可以通过调用UIView方法bringSubviewToFront在层中引发 UIView的 任何子类

[self.view bringSubviewToFront:self.desiredButton];

  ask by golmschenk translate from so

未解决问题?本站智能推荐:

1回复

是否可以仅显示CALayer ios的一部分?

一般来说, 例如,在iPhone4中,您是否可以使用带有(0,0,320,460)帧的CALayer。 然后决定只显示该层的中间矩形部分(150,220,20,20)。 这里的想法是获取特定的图层,然后隐藏除中间矩形之外的所有内容。 我尝试了没有运气的框架和界限。 我还研究了C
2回复

当主线程被阻止时,如何更新CALayer的内容?

即使主线程被阻止, AVCaptureVideoPreviewLayer实例仍继续从视频捕获流中更新其内容。 通常可以使用CALayer的自定义子类复制此行为吗? 换句话说,给定原始图像数据,我们可以在主线程被阻塞时更新屏幕上显示的内容吗?
1回复

如何在视图中放置AVCaptureVideoPreviewLayer?

我想在方形UIView中显示相机预览。 这就是我在做什么: 结果是相机预览会自动调整大小以完全适合视图。 我希望它水平放置并垂直修剪。 怎么做 ?
1回复

将图像捕获用于CALayer时会失真

我正在开发拍照应用程序。 使用此代码,应用程序的预览层设置为恰好占据屏幕的一半: 这看起来很完美,并且在用户查看相机的“预览” /他们在拍照时所看到的内容时完全没有失真。 但是,一旦他们实际拍摄了照片,我就创建一个子层并将其frame属性设置为预览层的属性,并将照片设置为该子层的
2回复

AVAudioSession AVAudioSessionCategoryPlayAndRecord故障

我想使用AVCaptureSession录制带有音频的视频。 为此,我需要AudioSessionCategory AVAudioSessionCategoryPlayAndRecord ,因为我的应用程序还播放带声音的视频。 我希望从默认扬声器中听到音频,我希望它能与其他音频混音。
1回复

AVCaptureSession addInput导致背景音频出现故障

我正在制作视频捕捉iOS应用程序,我希望能够录制麦克风的音频,同时允许播放背景音乐。 我可以做所有这些,但只要相机的视图进入和退出前景,背景音频就会跳过(暂停)。 我已将错误隔离到AVCaptureSession addInput : 如何防止添加麦克风输入影响背景音频? fy
1回复

来自CALayer的OpenGL纹理(AVPlayerLayer)

我有一个AVPlayerLayer,我想创建一个OpenGL纹理。 我对opengl纹理很满意,甚至可以将CGImageRef转换为opengl纹理。 在我看来,下面的代码应该可行,但我只是简单的黑色。 我究竟做错了什么? 我是否需要先在CALayer / AVPlayerLayer上设
1回复

可变视频组合中的CAlayer

我正在尝试在videoasset CGSize为CAlayer初始化视频。 不幸的是,不推荐使用naturalSize 。 我可以使用什么代替naturalSize?
1回复

AVVideoCompositionCoreAnimationTool内部的CALayer实时模糊

我试图提出一种在AVVideoCompositionCoreAnimationTool导出期间执行实时模糊的方法。 我已经尝试过UIVisualEffectView并窃取了基础视图的层。 它可以在预览中工作,但是一旦在AVVideoCompositionCoreAnimationTool中使
3回复

AVFoundation:导出时将视频正确地适合CALayer

问题: 我在使用AVFoundation创建的视频以正确尺寸显示在CALayer的VideoLayer中时遇到问题。 例子: 这是视频的外观(在应用程序中向用户显示) 但是,这是导出后的结果视频: 细节 如您所见,其含义是具有绿色背景的方形视频,并且视频适合指定的帧。 但是,生成的