У меня есть представление (назовем его scanView), которое открывает камеру для сканирования QR-кодов. Я поместил на него кнопку, которая открывает или закрывает fla sh. Проблема, с которой я столкнулся, заключается в том, что кнопка нажимается, но она не видна, т.е. я могу включить или выключить fla sh, щелкнув экран, на котором я разместил кнопку, но кнопка не отображается. Я проверил кнопку Alpha, попытался также вывести subview на передний план. Ничего не работает. Это какая-то проблема, связанная с QR-ридером iOS? Вот реализация QR Reader:
captureSession = AVCaptureSession()
guard let videoCaptureDevice = AVCaptureDevice.default(for: .video) else { return }
let videoInput: AVCaptureDeviceInput
do {
videoInput = try AVCaptureDeviceInput(device: videoCaptureDevice)
} catch {
return
}
if (captureSession.canAddInput(videoInput)) {
captureSession.addInput(videoInput)
} else {
failed()
return
}
let metadataOutput = AVCaptureMetadataOutput()
if (captureSession.canAddOutput(metadataOutput)) {
captureSession.addOutput(metadataOutput)
metadataOutput.setMetadataObjectsDelegate(self, queue: DispatchQueue.main)
metadataOutput.metadataObjectTypes = [.qr]
} else {
failed()
return
}
previewLayer = AVCaptureVideoPreviewLayer(session: captureSession)
previewLayer.frame = scanView.layer.bounds
previewLayer.videoGravity = .resizeAspectFill
scanView.layer.addSublayer(previewLayer)
captureSession.startRunning()
просмотреть образ отладчика иерархии
Как вы можете видеть выше, я также добавил цвет фона и фоновое изображение для ясности. На мой взгляд, кнопка хорошо выглядит в иерархии. В этом scanView я добавляю кнопку из своего файла xib