繁体   English   中英

iOS 按钮可点击但不可见

[英]iOS button is clickable but not visible

我有一个视图(我们称它为 scanView),可以打开相机扫描二维码。 我在上面放了一个按钮,可以打开或关闭 flash。我面临的问题是按钮被点击但它不可见,即,我可以通过点击我放置的屏幕打开或关闭 flash按钮,但按钮不可见。 我检查了按钮的 Alpha,也尝试将子视图放在前面。 什么都不管用。 是否与 iOS 的 QR 阅读器有关? 下面是二维码阅读器的实现:

        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 文件中添加按钮

首先,它可能与 QR Reader 实现无关。

其次,问问自己应该如何看待按钮? 标题? 图片?

第三,您始终可以在运行应用程序时按“调试视图层次结构”按钮,以停止其执行并查看屏幕上显示的所有视图。

“调试视图层次结构”按钮位于放置其他调试工具(如断点)下方的同一调试工具窗格中。

了解如何使用Debug View Hierarchy ,这样您就可以清楚地看到按钮在屏幕上的位置以及它不可见的原因。

我认为您对按钮的图像有疑问,因为您可以单击按钮但看不到它,请确保图像已正确添加到按钮上。

请记住一件事,如果它是可点击的,那么它就在那里,专注于它的呈现。 还尝试为其添加背景颜色并删除图像,以确保您的其他实现正常工作。

我设法通过设置按钮的 zposition 解决了这个问题。 谢谢大家的宝贵时间

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM