簡體   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