如何让 UIImageView 照片在 Swift 的时间间隔后消失

How to make a UIImageView photo disappear after a time interval in Swift

我正在开发一个用于分割的相机应用程序,我设法捕获实时照片以在 UIImageView 中显示为缩略图。现在我希望它在用户不触摸时在 3 秒内消失(就像拍照时的 IOS 相机行为)。你能帮我如何实现吗?请在下面查看我的代码的相关部分。非常感谢。

// MARK: -- Action to Capture Photo

extension ViewController {
    
    @IBAction func photoButtonAction(sender: UIButton) {
        CameraManager.shared.capture { [weak self] (pixelBuffer, sampleBuffer) in
            self?.handleCameraOutput(pixelBuffer: pixelBuffer, sampleBuffer: sampleBuffer, onFinish: { (image) in
                self?.imagePreview.image = image
                
                let pngData = image!.pngData()
                let compressedData = UIImage(data: pngData!)
                self!.writeToPhotoAlbum(image: compressedData!)

            })
        }
                
    }
        
        func writeToPhotoAlbum(image: UIImage) {
            UIImageWriteToSavedPhotosAlbum(image, self, #selector(saveError), nil)
    
        }

        @objc func saveError(_ image: UIImage, didFinishSavingWithError error: Error?, contextInfo: UnsafeRawPointer) {
            
        }
        
    }

您可以使用这样的 DispatchQueue.main.asyncAfter(deadline:) 方法:

var noUserInteractionOnImage = true // toggle this if user interacts with image

@IBAction func photoButtonAction(sender: UIButton) {
    CameraManager.shared.capture { [weak self] (pixelBuffer, sampleBuffer) in
        self?.handleCameraOutput(pixelBuffer: pixelBuffer, sampleBuffer: sampleBuffer, onFinish: { (image) in
            //...
            DispatchQueue.main.asyncAfter(deadline: .now() + 3) {
                if self?.noUserInteractionOnImage == true {
                    self?.imagePreview.image = nil
                }
            }
        })
    }
}