custom ios uibutton avfoundation calayer avcapturesession

ios - custom camera view swift 4



CALayer-Colocar subcapa debajo del guión gráfico UIButtons? (2)

Tengo un controlador de vista en mi guión gráfico con varios UIButtons. Uno de ellos activa una capa de vista previa de la cámara AVFoundation que se muestra en una subcapa:

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

Esto funciona correctamente, excepto por el hecho de que la capa de vista previa se representa en la parte superior de mis botones, por lo que a pesar de que aún se puede hacer clic en los botones, el usuario no puede verlos. ¿Hay una manera fácil de colocar la subcapa debajo de los botones? ¿O una forma fácil de levantar los botones en la capa? Muchas gracias


Las capas de botones son todas las subcapas de las capas de la vista principal. Tendrá que colocar la capa de vista previa de la cámara debajo de las capas del botón. Prueba esto:

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


Sólo para añadir. Puede elevar cualquier subclase de UIView en la capa llamando al método UIView bringSubviewToFront .

[self.view bringSubviewToFront:self.desiredButton];